Was ist das Ergebnis von decltype ("Hallo")?

Ich erhalte unerwartete Ergebnisse von allen Compilern, auf denen ich Folgendes ausprobiert habe (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!"
        );
}

Ich hätte die Kompilierungszeit Behauptung oben erwartetnicht zu schießen, aber es tut. Immerhin tut dies nicht (wie erwartet):

#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!"
        );
}

Also, was ist das Ergebnis vondecltype("Hello") nach dem C ++ 11 Standard (Referenzen werden sehr geschätzt)? Womit sollte ich es vergleichen, damit die obige Behauptung zur Kompilierungszeit nicht ausgelöst wird?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage