std::shared_ptr を反復処理する反復子があります。そのため、operator++ は、内部に格納された共有ポインターを次の項目にポイントします。
template<class IT>
class MyIterator
{
public:
...
MyIterator& operator++()
{
_i = ... // Call factory
return *this;
}
private:
std::shared_ptr<IT> _i;
};
operator*() および operator->() 演算子はどのように実装すればよいですか?
イテレータが NULL を指しているかどうか、つまり、内部共有ポインタが NULL を指しているかどうかをテストするにはどうすればよいですか。