Something about std::list<> member functions.
Jerry Quinn
jlquinn@optonline.net
Mon Aug 11 12:12:00 GMT 2003
Gabriel Dos Reis writes:
> Jerry Quinn <jlquinn@optonline.net> writes:
>
> | Gabriel Dos Reis writes:
> | > Nathan Myers <ncm-nospam@cantrip.org> writes:
> | >
> | > | On Sat, Aug 09, 2003 at 08:55:16PM +0200, Gabriel Dos Reis wrote:
> | > | > Dhruv Matani <dhruvbird@gmx.net> writes:
> | > | >
> | > | > [...]
> | > | >
> | > | > | form At&T syntax, but I thought (and still do think) that compiler
> | > | > | technology should have evolved by now so as to optimize such stuff into
> | > | > | nothingness...... And, looking at g++ optimizations, I definitely
> | > | > | thought that it could (at least now) optimize away the layer.
> | > | >
> | > | > See recent discussions on gcc@gcc.gnu.org about inlining.
> | > |
> | > | Without consulting those, I recall Jason Merrill mentioning that
> | > | you can get enormous optimization improvements just from declaring
> | > | the inline functions' arguments "const", unnecessarily. Is that
> | > | advice still current? Since it doesn't affect the ABI or standard
> | > | conformance, that seems worth doing where it makes a difference.
> | >
> | > We already pass the arguments by const reference.
> |
> | If I remember right, the issue isn't passing by const ref.
>
> Here is what I meant:
>
> struct less {
> template<class T>
> bool operator()(const T& a, const T& b) const
> { return a < b; }
> };
>
> the arguments are passed by const reference. Is that different fro
> what you intend below? If yes, please elaborate because I can't see
> the difference.
Yes. What you've written should be sufficient, but apparently there's
a front-end deficiency that may need:
struct less {
template<class T>
bool operator()(const T& const a, const T& const b ) const
{ return a < b; }
};
Note the extra const's on a and b. I don't remember the gory details
on why this was needed, though.
*checks inbox*
This message is what I recall about the issue:
http://gcc.gnu.org/ml/libstdc++/2003-02/msg00302.html
Jerry
More information about the Libstdc++
mailing list