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>
このバージョンのコードは、MicrosoftVS2010コンパイラで正常にコンパイルされるのを見てきました。そして、これがgccとvs2010の間で異なるc++標準解釈の問題であるかどうか疑問に思っています。