このパブリック メソッドを宣言するクラスがあります。
virtual std::vector<float> operator()(const std::vector<float>& = {});
{}
これは、c++ 11 の機能である均一な初期化 (ここでは単に) を使用します。でコンパイルするとき、これは私に何の問題も与えませんclang++ -std=c++11
。しかし、私が使用するg++ -std=c++0x
と、これが得られます:
error: expected primary-expression before '{' token
この-std=c++0x
オプションは c++11 のサポートをもたらすはずではありませんか?
次のように標準の C++ を使用してメソッドを宣言しても、コンパイラはエラーを表示しません。
virtual std::vector<float> operator()(const std::vector<float>& = std::vector<float>());
Ubuntu 12.04 で g++ 4.6 を使用しています