标签: c++ iterator c++17
从C ++ 17开始,不推荐继承std::iterator<...>。相反,应该将std::iterator_traits<...>专门用于自己的迭代器类型。
std::iterator<...>
std::iterator_traits<...>
我曾经把我的迭代器类写成它们所属的容器类中的嵌套类型。
尝试对std::iterator_traits<C<T>>进行部分专门化会导致我的容器T的值类型C出现不可推断的上下文。
std::iterator_traits<C<T>>
T
C
问题:我现在(从C ++ 17开始)是否应该在我的容器类之外定义我的迭代器类?