# include struct s {}; template void implicit_cast(U) {} struct iter : public boost::iterator_facade< iter , s , boost::forward_traversal_tag > { void increment() {} bool equal(iter const&) const { return true; } s& dereference() const { return s_; } mutable s s_; }; int main() { iter i; i.operator->(); }