我做了以下事情:
long long int x = 0;
int digits_of_x = std::numeric_limits<long long int>::digits;
而且效果很好。但是,如果有人更改了 x
的类型,这很容易引入错误。所以我更愿意这样做:
long long int x = 0;
int digits_of_x = std::numeric_limits<typeof(x)>::digits;
我找到了 GCC 扩展 typeof()
但我想使用一些标准函数(最高为 C++17)。有没有这个功能?
最佳答案
您想使用decltype
,而不是typeof
。自 C++11 起可用:
long long int x = 0;
int digits_of_x = std::numeric_limits<decltype(x)>::digits;
关于c++ - 使用变量的类型作为模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53383927/