Я знаю, что постфиксные версии операторов приращения/декремента будут, как правило, оптимизированы компилятором для встроенных типов (т.е. копия не будет сделана), но так ли это для iterator
s?
Они по сути являются просто перегруженными операторами и могут быть реализованы любым количеством способов, но поскольку их поведение строго определено, они могут быть оптимизированы, и если да, то они могут быть любыми/многими компиляторами?
#include <vector>
void foo(std::vector<int>& v){
for (std::vector<int>::iterator i = v.begin();
i!=v.end();
i++){ //will this get optimised by the compiler?
*i += 20;
}
}