- danh sách
end()
trả về bản sao của trình lặp vòng lặp kết thúc, phải không? - Do đó,
list.end()
là giá trị đúng, phải không? - - toán tử-hàm bị quá tải cho trình vòng lặp danh sách có tham chiếu không phải const, phải không?
- bạn không thể liên kết giá trị với tham chiếu không phải const, phải không?
Vì vậy, làm thế nào mà khôngtại sao --list.end() biên dịch?
std::list<int> lst;
// ...
--l.end();`
biên dịch?
Như được chỉ ra một cách chính xác, điểm thứ ba của tôi không nhất thiết phải đúng. Nhưng sau đó làm thế nào về mã này cũng biên dịch?
struct A{};
void f(A&)
{
}
A a()
{
return A();
}
int main()
{
f(a());
}
Điểm thứ ba là sai. – Nawaz
@banuj: Tôi không hiểu –
Tôi không đồng ý rằng ví dụ thứ hai của bạn biên dịch: http://ideone.com/V98wW3 –