Advertisement
Guest User

Untitled

a guest
Nov 21st, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. ClassA & operator << ( ClassA &, int32_t )
  2. {
  3. ...
  4. }
  5.  
  6.  
  7. class ClassMain
  8. {
  9. public:
  10. insert( ClassA & c ) const;
  11. ...
  12. private:
  13. std::set<int> m_setContainer;
  14. };
  15.  
  16. struct InsertOpt : binary_function<ClassA, int, ClassA&>
  17. {
  18. ClassA & operator( )( ClassA & c, int val ) const
  19. {
  20. c << val;
  21. return c;
  22. }
  23. };
  24.  
  25. void ClassMain::insert( ClassA & c ) const
  26. {
  27. // Case I: the for loop works
  28. for ( std::set<int>::const_iterator iter = m_setContainer.begin( );
  29. iter != m_setContainer.end( ); ++iter )
  30. {
  31. c << *iter; // operator<<( c, *iter );
  32. }
  33.  
  34. // Case II: doesn't work
  35. for_each( m_setContainer.begin( ), m_setContainer.end( ), bind1st( InsertOpt(), c ) );
  36.  
  37.  
  38. }
  39.  
  40. Error:
  41. ../include/c++/4.1.2/bits/stl_function.h:406: error: no match for call to '(const InsertOpt) (const ClassA&, const int&)'
  42. note: candidates are: ClassA& InsertOpt::operator()(ClassA&, int32_t) const
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement