Por que não referência não-const a objetos temporários? [duplicado]

C ++ permite a atribuição de objetos temporários apenas à referência const. Não permitirá a atribuição de objetos temporários para referência.

Por exemplo:

String& a = String("test");         // Error
const String& a = String("test");   // Ok

Em todos os lugares eu google para este resultado, eu só vejo as seguintes respostas

Modificar objetos temporários causaria problemas não identificáveisModificar objetos temporários é perigosoEm algum momento, você vai esquecer que é uma variável temporária

Tem sido dito, objetos temporários desaparecem após a declaração. Então você não deve modificá-lo.

Se C ++, está tão interessado em bloquear a modificação dos objetos temporários, deveria ter bloqueado a leitura dos objetos temporários, certo? Se o objeto temporário desapareceu, então não há sentido em ler o conteúdo de lá, certo? Os possíveis casos, onde um direito pode ocorrer, também podem envolver a leitura.

Então, por que ele está bloqueando, escreva sozinho e permitindo a leitura?

Por favor, me dê uma explicação sólida sobre o código c ++.

Por favor, não desvie a questão apontando algumas alternativas. Por favor, dê-me uma resposta sólida com código porque const int & é permitido e int & não é permitido para objetos temporários.

Um diz && está lá .. Minha pergunta diferente .. Outro diz, mudando não refletirá .. Mudando não refletirá até mesmo quando for const int & too. Por exemplo: double a; Const int & i = a; um ++; não afetará i ..

questionAnswers(4)

yourAnswerToTheQuestion