int main(){
int x{};
auto x2 = x;
auto x3{x};
static_assert(is_same<int, decltype(x)>::value, "decltype(x) is the same as int");
static_assert(is_same<int, decltype(x2)>::value, "decltype(x2) is the same as int");
static_assert(is_same<int, decltype(x3)>::value, "decltype(x3) is the same as int"); // Error here.
}
このコードは gcc 4.8.0 ではコンパイルできません。の型もわかりませんdecltype(x3)
。それは何ですか?そして、なぜ行動が異なるのですか?