C++ 是decltype';模板参数的结果
C++ 是decltype';模板参数的结果,c++,templates,C++,Templates,decltype的结果是否与模板标识符相同?(当提及T及其值时,正确的术语是什么?)。也就是说,是否存在断言失败的情况 template<typename T> void foo(T x) { static_assert(std::is_same<decltype(x), T>::value, "decltype check failed"); } 模板 void foo(T x) { 静态断言(std::is_same::value,“decltype检查失败”)
decltype
的结果是否与模板标识符相同?(当提及T及其值时,正确的术语是什么?)。也就是说,是否存在断言失败的情况
template<typename T>
void foo(T x)
{
static_assert(std::is_same<decltype(x), T>::value, "decltype check failed");
}
模板
void foo(T x)
{
静态断言(std::is_same::value,“decltype检查失败”);
}
变量的类型x
是T,因此静态断言总是会通过。“正确的术语是什么?”T
是一个模板参数,它的值是一个模板参数。这会因为一些修改而改变吗,例如decltype((x))
。我问这个问题的原因是因为我认为很难理解decltype和模板参数推断的更详细的细节。