我一直在尝试通过引用将 std::vector 传递给函数,默认值为空的 std::vector。我的函数声明如下:
void function( std::vector<double>& vec=std::vector<double>(0));
我的函数的定义是:
void function( std::vector<double>& vec)
{
...
}
但是我的 C++ 编译器(gcc 4.6)在这里抛出一个错误,说:
错误:“std::vector&”类型参数的默认参数具有“std::vector”类型</p>
我已经看到这个版本的代码在 Microsoft VS 2010 编译器上编译得很好。我想知道这是否是 gcc 和 vs2010 之间不同的 c++ 标准解释的问题。