You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2008/06/29 01:19:45 UTC
[jira] Created: (STDCXX-978) remove _RWSTD_NO_MEMBER_TEMPLATES and
workarounds
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
Reporter: Martin Sebor
Fix For: 4.3
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.
[jira] Commented: (STDCXX-978) remove _RWSTD_NO_MEMBER_TEMPLATES
and workarounds
Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615351#action_12615351 ]
Martin Sebor commented on STDCXX-978:
-------------------------------------
This issue was meant to apply only to {{\_RWSTD_NO_MEMBER_TEMPLATES}}. The {{\_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD}} macro is {{#defined}} for a different limitation/bug. That being said, if none of the compilers on our test matrix {{#defines}} the macro feel free to remove it as well. To check, grep {{people.apache.org://www/stdcxx.dev.apache.org/builds/4.3.x/logs/*-cfg-h.gz.txt}} for the string "{{^ *# *define *_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD *}}"
> 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.
[jira] Commented: (STDCXX-978) remove _RWSTD_NO_MEMBER_TEMPLATES
and workarounds
Posted by "Eric Lemings (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615327#action_12615327 ]
Eric Lemings commented on STDCXX-978:
-------------------------------------
I assume this issue also applies to _RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD since it is only referenced in the <bitset> header.
> 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.
[jira] Commented: (STDCXX-978) remove _RWSTD_NO_MEMBER_TEMPLATES
and workarounds
Posted by "Eric Lemings (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615330#action_12615330 ]
Eric Lemings commented on STDCXX-978:
-------------------------------------
Also I can find no config test or other conditions for which _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE is defined.
> 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.
[jira] Issue Comment Edited: (STDCXX-978) remove
_RWSTD_NO_MEMBER_TEMPLATES and workarounds
Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615351#action_12615351 ]
sebor edited comment on STDCXX-978 at 7/21/08 11:35 AM:
---------------------------------------------------------------
This issue was meant to apply only to {{\_RWSTD_NO_MEMBER_TEMPLATES}}. The {{\_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD}} macro is {{#defined}} for a different limitation/bug. That being said, if none of the compilers on our test matrix {{#defines}} the macro feel free to remove it as well. To check, grep {{people.apache.org://www/stdcxx.dev.apache.org/builds/4.3.x/logs/*-cfg-h.gz.txt}} for the string "{{^ *# *define *_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD *}}"
The config test for {{\_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE}} is [TEMPLATE_ON_RETURN_TYPE.cpp|http://svn.apache.org/repos/asf/stdcxx/branches/4.2.x/etc/config/src/TEMPLATE_ON_RETURN_TYPE.cpp].
was (Author: sebor):
This issue was meant to apply only to {{\_RWSTD_NO_MEMBER_TEMPLATES}}. The {{\_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD}} macro is {{#defined}} for a different limitation/bug. That being said, if none of the compilers on our test matrix {{#defines}} the macro feel free to remove it as well. To check, grep {{people.apache.org://www/stdcxx.dev.apache.org/builds/4.3.x/logs/*-cfg-h.gz.txt}} for the string "{{^ *# *define *_RWSTD_NO_MEMBER_TEMPLATE_OVERLOAD *}}"
> 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.
[jira] Updated: (STDCXX-978) remove _RWSTD_NO_MEMBER_TEMPLATES and
workarounds
Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor updated STDCXX-978:
--------------------------------
Affects Version/s: (was: 4.3.0)
4.3.x
This will not affect the 4.3.0 *release* but it does (or did until [r678913|http://svn.apache.org/viewcvs?view=rev&rev=678913]) affect the 4.3.x *branch*, so replaced 4.3.0 with 4.3.x in Affects Version/s.
> 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.x
> 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.
[jira] Assigned: (STDCXX-978) remove _RWSTD_NO_MEMBER_TEMPLATES and
workarounds
Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/STDCXX-978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor reassigned STDCXX-978:
-----------------------------------
Assignee: Eric Lemings
Assigned to Brad.
> 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.
[jira] Commented: (STDCXX-978) remove _RWSTD_NO_MEMBER_TEMPLATES
and workarounds
Posted by "Eric Lemings (JIRA)" <ji...@apache.org>.
[ 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.