------- Comment #9 from singler at gcc dot gnu dot org  2009-03-31 16:41 -------
We have duplicated binders because they have a changed parametrization, as
needed for parallel mode usage:


/**
  *  @brief Similar to std::binder2nd, but giving the argument types
  *  explicitly.
  */
template<typename _Operation, typename first_argument_type,
         typename second_argument_type, typename result_type>
  class binder2nd


/** @brief Similar to std::binder1st,
  *  but giving the argument types explicitly. */
template<typename _Predicate, typename argument_type>
  class unary_negate


/** @brief Similar to std::equal_to, but allows two different types. */
template<typename T1, typename T2>
  struct equal_to : std::binary_function<T1, T2, bool>


and so on.  We could give them more different names to avoid conflicts, but at
least they are encapsulated in __gnu_parallel (uglifying the names would also
help).  Basically, both patches change things by taking the argument by const
reference, instead of by value.  The first one has the indirection of
binder2nd, while the second directly uses an adapted version of equal_to.


-- 

singler at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |paolo dot carlini at oracle
                   |                            |dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39546

Reply via email to