跟我学C++中级篇——if constexpr的应用

一、场景应用
在一个开发场景下,需要动态处理不同类型的数据写入。本来这个非常简单,只要定义一个模板即可搞定,但这里偏偏有一个细节,是调用别人的库来实现写入。而这个库对不同的数据类型的写入,提供了N种不同的函数,这些函数只是名字和写入数据类型不同,其它都完全一样。象下面的样子:

void putIntData(int *buf,int count,...);
void putCharData(char*buf,int count,...);
void putFloatData(float*buf,int count,...)
......

如果在上层应用调用这些函数,如下:

int * buf[1024] = {
   ......};
int size = 1024;

void SaveData(int *buf,uint32_t size)
{
   
   if(std::is_same_v<decltype(buf[0]),int>)
   {
   
      putIntData(buf,size,...);
   

你可能感兴趣的:(跟我学C++中级篇——if constexpr的应用)