Section: 28.3.3.1 [locale] Status: Dup Submitter: Martin Sebor Opened: 2002-09-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [locale].
View all issues with Dup status.
Duplicate of: 31
Discussion:
I think there is a problem with 22.1.1, p6 which says that
-6- An instance of locale is immutable; once a facet reference is obtained from it, that reference remains usable as long as the locale value itself exists.
and 22.1.1.2, p4:
const locale& operator=(const locale& other) throw(); -4- Effects: Creates a copy of other, replacing the current value.
How can a reference to a facet obtained from a locale object remain valid after an assignment that clearly must replace all the facets in the locale object? Imagine a program such as this
std::locale loc ("de_DE"); const std::ctype<char> &r0 = std::use_facet<std::ctype<char> >(loc); loc = std::locale ("en_US"); const std::ctype<char> &r1 = std::use_facet<std::ctype<char> >(loc);
Is r0 really supposed to be preserved and destroyed only when loc goes out of scope?
Proposed resolution:
[Summer '04 mid-meeting mailing: Martin and Dietmar believe this is a duplicate of issue 31 and recommend that it be closed. ]