Я определяю типы итераторов для своего контейнера и, конечно, я хочу, чтобы iterator
был преобразован в const_iterator
.Но я не уверен, что лучше / предпочтительнее:
Оператор преобразования в iterator
class iterator
{
operator const_iterator();
};
или неявный конструктор в const_iterator
class iterator
{
// implementation
friend class iterator; // hard to avoid this
};
class const_iterator
{
const_iterator(iterator const &);
};
Есть ли какие-либо рекомендации, какой путь лучше?