Что static_cast <T> делает с T &?

Поэтому я спросилэтот вопрос и я возился с решением черезstatic_cast, (Между прочим, это решает проблему, я просто не уверен, понимаю ли я почему.)

В коде:

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

Этоstatic_cast просто построить R-значениеint? Какая разница между этим и просто вызовом:

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

РЕДАКТИРОВАТЬ:

Как следует из ответовstatic_cast делает кажется, построить R-значениеint: http://ideone.com/dVPIhD

Но этот код делаетне работать на Visual Studio 2015. Это ошибка компилятора? Проверьте здесь:http://webcompiler.cloudapp.net/

Ответы на вопрос(2)

Ваш ответ на вопрос