我有一个声明这个公共方法的类:
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