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/