我type_traits最近一直在研究并且想知道为什么它们被实现,class templates而实现它们functions可能更明显并且具有更简单的语法.
我想说的是这种语法: -
int x = 5;
std::cout << is_same<int>(x);
Run Code Online (Sandbox Code Playgroud)
比实际的更有说服力和清洁,即: -
int x = 5;
std::cout << is_same <int, decltype(x)>::value;
Run Code Online (Sandbox Code Playgroud)
这只是好奇心的一个例子.我只想知道标准化委员会的理念,而class不是function方法.
X::value布尔常量和X::type类型别名,可用于标记分派.constexpr功能不可用.即使在constexpr函数中,也不能将值作为参数传递,因为它可能会阻止编译时评估.