LINUX.ORG.RU

История изменений

Исправление kvpfs, (текущая версия) :

Этот каст — мина замедленного действия. i2 выглядит, как константный итератор, крякает как константный итератор, но это не то, что должен делать пользователь с контейнером.

Там нет мины, из неконстантного итератора получается самый настоящий константный, который крякает, выглядит и вёдёт себя правильно. Т.е. у неконстантого итератора есть что-то вроде:

class Iterator {
   operator const_iterator();
}

Ну и оба итератора являются специализациями одного шаблона итератора.

Исходная версия kvpfs, :

Этот каст — мина замедленного действия. i2 выглядит, как константный итератор, крякает как константный итератор, но это не то, что должен делать пользователь с контейнером.

Там нет мины, из неконстантного итератора получается самый настоящий константный, который крякает, выглядет и вёдёт себя правильно. Т.е. у неконстантого итератора есть что-то вроде:

class Iterator {
   operator const_iterator();
}

Ну и оба итератора являются специализациями одного шаблона итератора.