Chỉ có trình biên dịch của tôi hoặc bị cấm sử dụng tham chiếu cons trong phần tử std :: vector. Xem xét sau cấu trúc:Tham chiếu Const trong std :: các phần tử vector
struct Y
{
const int & x;
Y(const int & p_x):
x(p_x)
{
}
};
Bây giờ, khi tôi cố gắng đẩy đối tượng như vậy vào vector:
std::vector<Y> yv;
int x = 5;
Y y(x);
yv.push_back(y);
tôi nhận được lỗi biên dịch: "Lỗi: thành viên tham khảo không tĩnh 'const int & Y :: x ', không thể sử dụng toán tử gán mặc định ". Không nên sao chép ctor là đủ?
+1 để trích dẫn tiêu chuẩn :) – Nobody