Tôi biết std::queue::pop()
trả về void
. Vì hai lý do: an toànCó thể xếp hàng :: pop trả lại giá trị ngay bây giờ?
- ngoại lệ: một cái gì đó có thể ném sau khi gỡ bỏ phần tử
- để có thể return the value by reference
Fine.
Bây giờ, nếu tôi hiểu chính xác C++ 11 di chuyển ngữ nghĩa, thứ hai không còn là đối số hợp lệ nữa.
Vì vậy, ... điều duy nhất ngăn chặn std::queue
để có hàm pop
giống như trả về giá trị nằm trong khả năng mà hàm tạo di chuyển ném?
Tôi có một thời gian khó suy nghĩ về các tình huống mà một nhà xây dựng di chuyển như vậy sẽ ném. Ai biết được một ví dụ?
Tôi đoán cùng đi cho std::stack::pop()
, std::vector::pop_front()
, std::vector::pop_back()
, std::deque::pop_front()
, std::deque::pop_back()
, std::list::pop_front()
, std::list::pop_back()
và những gì không.
Đó thực sự là hai câu hỏi. Một ví dụ cho một hàm khởi tạo và một 'pop' trở lại. – pmr
Tôi cần một ví dụ về một nhà xây dựng di chuyển ném để hiểu tại sao chúng ta không thể có 'pop' trở lại. –
Điều gì về các loại mà không có một nhà xây dựng di chuyển ở tất cả? – jalf