Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. class my_obj
  2. {
  3. public:
  4. my_obj(some_internal_initialization_value_ v);
  5.  
  6. std::wstring friendly_name() const;
  7. // ...
  8. };
  9.  
  10. class my_iterator
  11. : public boost::iterator_facade<
  12. my_iterator,
  13. my_obj,
  14. boost::forward_traversal_tag>
  15. {
  16. // ...
  17. private:
  18. my_obj& dereference() const
  19. {
  20. // warning C4172: returning address of local variable or temporary
  21. return my_obj(some_internal_initialization_value_);
  22. }
  23. };
  24.  
  25. int main( int argc, char* argv[])
  26. {
  27. my_container c;
  28. for (auto o = c.begin(); o != c.end(); ++o)
  29. printf( "%sn", o->friendly_name().c_str() );
  30. }
  31.  
  32. my_container c;
  33. for (auto i = c.begin(); i != c.end(); ++i)
  34. {
  35. my_obj o(*i);
  36. printf( "%sn", o.friendly_name().c_str() );
  37. }
  38.  
  39. class my_iterator
  40. : public boost::iterator_facade<
  41. my_iterator,
  42. my_obj,
  43. boost::forward_traversal_tag,
  44. my_obj> //dereference returns "my_obj" not "my_obj&"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement