O que o static_cast <T> faz com um T &?

Então eu pergunteiessa questão e eu estava tentando resolver isso viastatic_cast. (Aliás, resolve o problema, só não tenho certeza se entendi o porquê.)

No código:

vector<int> foo = {0, 42, 0, 42, 0, 42};
replace(begin(foo), end(foo), static_cast<int>(foo.front()), 13);

É ostatic_cast simplesmente construindo um valor Rint? Qual é a diferença entre isso e apenas a ligação:

replace(begin(foo), end(foo), int{foo.front()}, 13);

EDITAR:

Como inferido pelas respostasstatic_cast faz parecem construir um valor Rint: http://ideone.com/dVPIhD

Mas esse código faznão trabalho no Visual Studio 2015. Isso é um bug do compilador? Teste aqui:http://webcompiler.cloudapp.net/

questionAnswers(2)

yourAnswerToTheQuestion