parallel equal not parallel
Johannes Singler
singler@kit.edu
Mon Jan 24 18:45:00 GMT 2011
On 11/05/2010 06:13 PM, Johannes Singler wrote:
> On 11/04/2010 10:53 PM, Paolo Carlini wrote:
>> On 11/04/2010 09:48 PM, François Dumont wrote:
>>> So it uses the normal mismatch algo, IMO it should be:
>>>
>>> template<typename _IIter1, typename _IIter2>
>>> inline bool
>>> equal(_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2)
>>> {
>>> return mismatch(__begin1, __end1, __begin2).first == __end1;
>>> }
>>>
>>> template<typename _IIter1, typename _IIter2, typename _Predicate>
>>> inline bool
>>> equal(_IIter1 __begin1, _IIter1 __end1, _IIter2 __begin2,
>>> _Predicate __pred)
>>> {
>>> return mismatch(__begin1, __end1, __begin2, __pred).first ==
>>> __end1;
>>> }
>>>
>>> Agree ?
>> Johannes?
>
> Looks reasonable. I'm going to regression test this patch.
Well, I have an test case that fails to compile with this version
(ambiguity), when calling __gnu_parallel::equal (explicitly qualified).
Thus, I propose the attached patch. Does it still work for you then,
François?
Johannes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mismatch_ambiguity.patch
Type: text/x-patch
Size: 951 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20110124/5eb25e4e/attachment.bin>
More information about the Libstdc++
mailing list