template<typename NodeTy>
class ilist_iterator
: public bidirectional_iterator<NodeTy, ptrdiff_t> {
+
+public:
typedef ilist_traits<NodeTy> Traits;
typedef bidirectional_iterator<NodeTy, ptrdiff_t> super;
-public:
typedef size_t size_type;
typedef typename super::pointer pointer;
typedef typename super::reference reference;
private:
pointer NodePtr;
+
+ // operator[] is not defined. Compile error instead of having a runtime bug.
+ void operator[](unsigned) {}
+ void operator[](unsigned) const {}
public:
ilist_iterator(pointer NP) : NodePtr(NP) {}