[ https://issues.apache.org/jira/browse/STDCXX-978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615423#action_12615423 ]
Eric Lemings commented on STDCXX-978: ------------------------------------- Checked all log files in the {{{/www/stdcxx.dev.apache.org/builds/4.3.x/logs}}} directory. None of the macros {{{_RWSTD_NO_MEMBER_TEMPLATES}}}, {{{_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD}}}, and {{{_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE}}} are being defined. I'm leaving the return type macro untouched however since it is unrelated to this issue (unlike the overload macro). > remove _RWSTD_NO_MEMBER_TEMPLATES and workarounds > ------------------------------------------------- > > Key: STDCXX-978 > URL: https://issues.apache.org/jira/browse/STDCXX-978 > Project: C++ Standard Library > Issue Type: Task > Components: Configuration > Affects Versions: 4.3.0 > Reporter: Martin Sebor > Assignee: Eric Lemings > Fix For: 4.3.0 > > Original Estimate: 6h > Remaining Estimate: 6h > > Quoting from the following > [discussion|http://markmail.org/message/r64lwtgmbe5lcgsl]: > {quote} > Martin Sebor wrote: > > 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. > > > > Martin > {quote} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.