This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/39546] parallel mode doesn't support implicit string conversion
- From: "singler at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Mar 2009 16:41:44 -0000
- Subject: [Bug libstdc++/39546] parallel mode doesn't support implicit string conversion
- References: <bug-39546-17494@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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