This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [Patch] Use __builtin_clz* for __lg
- From: "Jonathan Wakely" <jwakely dot gcc at gmail dot com>
- To: "Joe Buck" <Joe dot Buck at synopsys dot com>
- Cc: "Paolo Carlini" <pcarlini at suse dot de>, libstdc++ <libstdc++ at gcc dot gnu dot org>
- Date: Thu, 25 Oct 2007 23:05:59 +0100
- Subject: Re: [Patch] Use __builtin_clz* for __lg
- References: <471FA3AD.5010507@suse.de> <20071024215743.GM6597@synopsys.com>
On 24/10/2007, Joe Buck <Joe.Buck@synopsys.com> wrote:
>
> Your "specializations" aren't specializations, but ordinary functions.
> I'm not sure whether this matters in practice, though.
>
> That is, you define __lg(int), not __lg<int>(int).
>
> I guess this might matter when __lg is called from a template. This
> is an area of the standard that I am often a bit confused by, though.
It would matter if they were called as __lg<T> but they're only used
by the library code and it doesn't do that, so the non-templates are
in the overload set and work as intended.
Jon