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]
В отличие от любого другого литерала, являющегося rvalue, строковые литералы являются lvalue. decltype, примененное к выражению lvalue, дает вам ссылку, поэтому const char (&)[1] - правильное поведение.
decltype