Что 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/