Почему std :: queue :: pop не возвращает значение?
Я прошел через этостраница но я не могу получить причину для того же. Там упоминается, что
«для него более разумно вообще не возвращать значения и требовать, чтобы клиенты использовали front () для проверки значения в начале очереди»
Но проверка элемента из front () также требует, чтобы этот элемент был скопирован в lvalue. Например, в этом сегменте кода
std::queue<int> myqueue;
int myint;
int result;
std::cin >> myint;
myqueue.push (myint);
/ * здесь на RHS будет создан временный объект, который будет присвоен результату, а в случае возврата по ссылке результат будет считаться недействительным после операции pop * /
result = myqueue.front(); //result.
std::cout << ' ' << result;
myqueue.pop();
на пятой линиисоиЬ Сначала объект создает копию myqueue.front (), а затем присваивает результат. Итак, какая разница, поп-функция могла бы сделать то же самое.