Date
2010-10-21.18:28:33
Message id
3810

Content

Proposed resolution:

Change [depr.lib.binder.1st]:

template <class Fn> 
class binder1st 
  : public unary_function<typename Fn::second_argument_type, 
                          typename Fn::result_type> { 
protected: 
  Fn fn op; 
  typename Fn::first_argument_type value; 
public: 
  binder1st(const Fn& x, 
            const typename Fn::first_argument_type& y); 
  typename Fn::result_type 
    operator()(const typename Fn::second_argument_type& x) const; 
  typename Fn::result_type 
    operator()(typename Fn::second_argument_type& x) const; 
};

-1- The constructor initializes fn op with x and value with y.

-2- operator() returns fnop(value,x).

Change [depr.lib.binder.2nd]:

template <class Fn> 
class binder2nd
  : public unary_function<typename Fn::first_argument_type, 
                          typename Fn::result_type> { 
protected: 
  Fn fn op; 
  typename Fn::second_argument_type value; 
public: 
  binder2nd(const Fn& x, 
            const typename Fn::second_argument_type& y); 
  typename Fn::result_type 
    operator()(const typename Fn::first_argument_type& x) const; 
  typename Fn::result_type 
    operator()(typename Fn::first_argument_type& x) const; 
};

-1- The constructor initializes fn op with x and value with y.

-2- operator() returns fnop(value,x).