タグ別アーカイブ: 複合リテラル

GCC 4.7がボーダーか?

以前のGCCでは、C++でも複合リテラルを使えていました。

たとえばこんな風にです。

std::puts((char[]) { 'a', 'b', 'c', '\0' });

ところが、今日たまたま同様のコードを試してみたところ、コンパイルエラーになるではありませんか? 試したバージョンは4.8.1でした。疑問に思ったので、古いバージョンでも試してみました。4.4や4.6では確かにコンパイルできます。

続きを読む