それは私のコンパイラだけですか、それとも std::vector 要素でコンス参照を使用することは禁止されていますか? 次の構造を検討してください。
struct Y
{
const int & x;
Y(const int & p_x):
x(p_x)
{
}
};
今、そのようなオブジェクトをベクトルにプッシュしようとすると:
std::vector<Y> yv;
int x = 5;
Y y(x);
yv.push_back(y);
コンパイラ エラーが表示されます:「エラー: 非静的参照メンバー `const int&Y::x'、既定の代入演算子を使用できません」。コピーctorで十分ではありませんか?