Title
are cv-qualified facet types valid facets?
Status
cd1
Section
[locale.facet]
Submitter
Martin Sebor

Created on 2003-10-15.00:00:00 last changed 172 months ago

Messages

Date: 2010-10-21.18:28:33

[ Kona: changed the last sentence from a footnote to normative text. ]

Date: 2010-10-21.18:28:33

Proposed resolution:

Change 22.1.1.1.2, p1 to read:

Template parameters in this clause which are required to be facets are those named Facet in declarations. A program that passes a type that is not a facet, or a type that refers to volatile-qualified facet, as an (explicit or deduced) template parameter to a locale function expecting a facet, is ill-formed. A const-qualified facet is a valid template argument to any locale function that expects a Facet template parameter.

Date: 2003-10-15.00:00:00

Is "const std::ctype<char>" a valid template argument to has_facet, use_facet, and the locale template ctor? And if so, does it designate the same Facet as the non-const "std::ctype<char>?" What about "volatile std::ctype<char>?" Different implementations behave differently: some fail to compile, others accept such types but behave inconsistently.

History
Date User Action Args
2010-10-21 18:28:33adminsetmessages: + msg2635
2010-10-21 18:28:33adminsetmessages: + msg2634
2003-10-15 00:00:00admincreate