2

私は最近、オンライン コンパイラで次の簡単なプログラムをテストしました。ここでライブ デモを参照してください。正常にコンパイルされ、期待される出力が得られますが、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 コンパイラで動作しないのはなぜですか?

4

2 に答える 2