// se il compilatore è c++11
auto it = trail.cbegin();
auto stop = trail.cend();
std::advance(it,5);
for (; iterator != stop ; ++iterator)
...etc...
// compilatore c++03
list<segmentTrail>::const_iterator iterator = trail.begin();
list<segmentTrail>::const_iterator stop = trail.end();
std::advance(it,5);
for (; iterator != stop; ++iterator)
...etc...
Ho cambiato il nome della variabile perché non mi piace che il nome coincida con quello della funzione, ma il concetto è uguale.
Nota personale.
Da questo piccolo esempio è lampante quanto convenga usare compilatori che implementino qualcosa del C++11 (ultime versioni del g++ o VC++ 2010 per citare i più diffusi.)