stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <>
Subject Re: Empty member initializers
Date Sat, 28 Jun 2008 23:01:51 GMT
Travis Vitek wrote:
>> Eric Lemings wrote:
>>> Travis Vitek wrote:
>>>> Eric Lemings wrote:
>>>> How about member templates?  Are these unilaterally supported by all
>>>> compilers now?
>>> From below...
>>>   _RWSTD_NO_INLINE_MEMBER_TEMPLATES /* not used at all */
>> Well there's an INLINE_MEMBER_TEMPLATES.cpp check and then there's a
>> separate MEMBER_TEMPLATES.cpp check.  I assume they check different
>> things.  :)
> Yes, I realize this. The former checks that inline member templates are
> supported. The latter checks that member templates can be defined
> outside the body of the class.
> AFAICT, inline member templates are used in library code without guards,
> so you can safely assume support for 4.2.x and later.
> If you want anything further than that [i.e. member templates defined
> outside the body of the class, member template overloads, ...], you have
> to look to see what all of the supported compilers allow. If one or more
> of the currently supported compilers defines _RWSTD_NO_MEMBER_TEMPLATES,
> then you will likely have to work around the issue in any new code. If
> none of them define it, then some decision will have to be made if it is
> safe to assume support for other compilers or not.

Starting with 4.3.0, I think we can safely assume full support for
member templates and remove all workarounds involving the macros
as well as the macros (and the config test) themselves. The only
thing I'd double-check before doing this cleanup is string when
using HP aCC 3 because of an extern template bug.

I don't even think there is a compiler that we target with 4.2.x
that doesn't support member templates in any form. IIRC, the last
one that had trouble with member templates (their out-of-line
definitions) was MSVC 6.


View raw message