Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class my_obj
- {
- public:
- my_obj(some_internal_initialization_value_ v);
- std::wstring friendly_name() const;
- // ...
- };
- class my_iterator
- : public boost::iterator_facade<
- my_iterator,
- my_obj,
- boost::forward_traversal_tag>
- {
- // ...
- private:
- my_obj& dereference() const
- {
- // warning C4172: returning address of local variable or temporary
- return my_obj(some_internal_initialization_value_);
- }
- };
- int main( int argc, char* argv[])
- {
- my_container c;
- for (auto o = c.begin(); o != c.end(); ++o)
- printf( "%sn", o->friendly_name().c_str() );
- }
- my_container c;
- for (auto i = c.begin(); i != c.end(); ++i)
- {
- my_obj o(*i);
- printf( "%sn", o.friendly_name().c_str() );
- }
- class my_iterator
- : public boost::iterator_facade<
- my_iterator,
- my_obj,
- boost::forward_traversal_tag,
- my_obj> //dereference returns "my_obj" not "my_obj&"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement