私は最近、オンライン コンパイラで次の簡単なプログラムをテストしました。ここでライブ デモを参照してください。正常にコンパイルされ、期待される出力が得られますが、Dev C++ IDE でテストすると、コンパイル中に失敗します。
これが私のプログラムです:
#include <iostream>
class Test
{
int s=9;
public:
int get_s()
{
return s;
}
};
int main()
{
Test s;
Test& t{s}; // error in C++11 but not in C++14 why???
std::cout<<t.get_s();
}
次のエラーが表示されます。
[Error] invalid initialization of non-const reference of type 'Test&' from an rvalue of type '<brace-enclosed initializer list>'
コードブロック13.12 IDEでも試してみましたが、Dev C++と同じエラーが発生します。
これは C++14 の新しい機能ですか? C++11 コンパイラで動作しないのはなぜですか?