From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11493 invoked by alias); 31 Mar 2009 16:42:20 -0000 Received: (qmail 10204 invoked by uid 48); 31 Mar 2009 16:41:44 -0000 Date: Tue, 31 Mar 2009 16:43:00 -0000 Message-ID: <20090331164144.10203.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libstdc++/39546] parallel mode doesn't support implicit string conversion In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "singler at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-03/txt/msg02546.txt.bz2 ------- 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 class binder2nd /** @brief Similar to std::binder1st, * but giving the argument types explicitly. */ template class unary_negate /** @brief Similar to std::equal_to, but allows two different types. */ template struct equal_to : std::binary_function 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