小编pic*_*129的帖子

输入参数的类型取决于模板布尔值

我的目的很简单,输入的数据类型取决于模板 bool:

template<bool isfloa>
class example{
public:
  if (isfloa){
    example(float p){printf("sizeof p: %d\n", sizeof(p))};
  } else{
    example(uint64_t p){printf("sizeof p: %d\n", sizeof(p))};
  }
};
Run Code Online (Sandbox Code Playgroud)

这无法通过编译,我有以下解决方案(尚未测试):

using dataType = isfloa ? float : uint64_t;
example(dataType p){printf("sizeof p: %d\n", sizeof(p))};
Run Code Online (Sandbox Code Playgroud)

我想知道这是否有效?还有其他解决方案吗?多谢。

c++ templates using metaprogramming class

3
推荐指数
1
解决办法
666
查看次数

标签 统计

c++ ×1

class ×1

metaprogramming ×1

templates ×1

using ×1