标签: c++ templates string-literals decltype
template<typename T> class X; int main() { X<decltype("")> x; }
为什么g ++将T推导为const char (&)[1]而不是简单地推论const char[1]?
T
const char (&)[1]
const char[1]
答案 0 :(得分:7)
与其他所有作为右值的文字不同,字符串文字是左值。 decltype应用于左值表达式为您提供了一个引用,因此const char (&)[1]是正确的行为。
decltype