次のコードは、clang 3.5.0では正常にコンパイルされますが、 gcc 4.9.0ではコンパイルされません(フラグと,およびフラグ-Wall -Wextra -pedantic-errors
のいずれかを使用):-std=c++03
-std=c++11
-std=c++14
struct S
{
S(const float(&)[12])
{
}
};
float v[12];
S f()
{
return v;
}
int main()
{
}
MS VC 2013も このコードをうまくコンパイルします。
どのコンパイラが適切で、標準に準拠した動作は何ですか?