Por que std :: queue :: pop retorna valor.?

Eu passei por issopágina mas não sou capaz de entender o motivo. Lá é mencionado que

"é mais sensato não retornar nenhum valor e exigir que os clientes usem front () para inspecionar o valor na frente da fila"

Mas inspecionar um elemento de frente () também exigia que esse elemento fosse copiado em lvalue. Por exemplo, neste segmento de código

std::queue<int> myqueue;
int myint;
int result;
std::cin >> myint;
myqueue.push (myint);

/ * aqui temporário será criado no RHS que será atribuído ao resultado e, se retornos por referência, o resultado será invalidado após a operação pop * /

result = myqueue.front();  //result.
std::cout << ' ' << result;
myqueue.pop();

na quinta linhacout O objeto primeiro cria uma cópia do myqueue.front () e depois a atribui ao resultado. Então, qual é a diferença, a função pop poderia ter feito a mesma coisa.

questionAnswers(7)

yourAnswerToTheQuestion