Boost logo

Boost :

Subject: Re: [boost] [uuids] On boost::uuids::uuid operator == performance.
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2012-04-16 08:22:40


On 04/16/2012 01:58 PM, Peter Dimov wrote:
> Mathias Gaunard wrote:
>> On 16/04/12 01:10, Michael Kochetkov wrote:
>>
>> > boost uses the following comparison operator:
>> > inline bool operator==(uuid const& lhs, uuid const& rhs) /* throw() */
>> > {
>> > return std::equal(lhs.begin(), lhs.end(), rhs.begin());
>> > }
>> >
>> > which end up with the following code:
>> > lea edx, DWORD PTR _id2$[esp+92]
>> > lea ecx, DWORD PTR _id1$[esp+108]
>> > lea eax, DWORD PTR _id1$[esp+92]
>> > call ?_Equal_at_std@@YA_NPBE00_at_Z ; std::_Equal
>>
>>
>> A good implementation of std::equal would call memcmp here, ...
>
> It does.

The code above calls the std::_Equal symbol, not memcmp.
The code given for std::_Equal also does not contain a jump to any other
function.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk