Каков результат decltype («Hello»)?
Я получаю неожиданные результаты от всех компиляторов, на которых я пробовал следующее (GCC 4.7.2, GCC 4.8.0 beta, ICC 13.0.1, Clang 3.2, VC10):
#include <type_traits>
int main()
{
// This will fire
static_assert(
std::is_same<decltype("Hello"), char const[6]>::value,
"Error!"
);
}
Я бы ожидал утверждение времени компиляции вышене уволить, но это так. В конце концов, этот не (как ожидалось):
#include <type_traits>
int main()
{
char const hello[6] = "Hello";
// This will not fire
static_assert(
std::is_same<decltype(hello), char const[6]>::value,
"Error!"
);
}
Так каков результатdecltype("Hello")
в соответствии со стандартом C ++ 11 (ссылки высоко ценятся)? С чем мне это сравнить, чтобы вышеупомянутое утверждение времени компиляции не сработало?