以前のGCCでは、C++でも複合リテラルを使えていました。
たとえばこんな風にです。
std::puts((char[]) { 'a', 'b', 'c', '\0' });
ところが、今日たまたま同様のコードを試してみたところ、コンパイルエラーになるではありませんか? 試したバージョンは4.8.1でした。疑問に思ったので、古いバージョンでも試してみました。4.4や4.6では確かにコンパイルできます。
以前のGCCでは、C++でも複合リテラルを使えていました。
たとえばこんな風にです。
std::puts((char[]) { 'a', 'b', 'c', '\0' });
ところが、今日たまたま同様のコードを試してみたところ、コンパイルエラーになるではありませんか? 試したバージョンは4.8.1でした。疑問に思ったので、古いバージョンでも試してみました。4.4や4.6では確かにコンパイルできます。