Будет ли оптимизирована неэффективность постфиксных операторов ++ / - для итераторов STL?

Я знаю, что постфиксные версии операторов увеличения / уменьшения обычно оптимизируются компилятором для встроенных типов (т. Е. Копирование не производится), но это так для итератора 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;
  }
}
11
задан Dominic Gurto 21 June 2011 в 02:05
поделиться