You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2007/03/02 00:52:50 UTC

[jira] Updated: (STDCXX-212) [MSVC 6.0] std::has_facet, std::use_facet broken

     [ https://issues.apache.org/jira/browse/STDCXX-212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Sebor updated STDCXX-212:
--------------------------------

    Priority: Minor  (was: Major)

Lowered priority since the problem can be dealt with by upgrading to MSVC 7.x and 8.0.

> [MSVC 6.0] std::has_facet, std::use_facet broken
> ------------------------------------------------
>
>                 Key: STDCXX-212
>                 URL: https://issues.apache.org/jira/browse/STDCXX-212
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 22. Localization
>    Affects Versions: 4.1.3, 4.1.2
>         Environment: MSVC 6.0
>            Reporter: Martin Sebor
>            Priority: Minor
>
> Moved from the Rogue Wave bug tracking database:
> ****Created By: sebor @ Jun 16, 2004 12:17:37 PM****
> The example manual/hasfacet.cpp prints 'false\nfalse\n' when compiled with MSVC 6.0. This is due to the interaction of two bugs: PR #27947 and PR #28102 which prevents has_facet from using the workaround mentioned in PR #27947 (using the default argument). This effectively means that std::has_facet and std::use_facet are pretty much useless.
> #include <ios>        // for boolalpha 
> #include <iostream>   // for cout, endl
> #include <locale>     // for has_facet()
> #include <examples.h>
> // dummy facet, must derive from locale::facet
> // and define a static member of type locale::id
> struct my_facet: public std::locale::facet
> {
>     static std::locale::id id;
> };
> std::locale::id my_facet::id;
> int main ()
> {
>     // see if ctype<char> is contained in the locale imbued in cout
>     std::cout << std::boolalpha
>               << std::has_facet<std::ctype<char> >(std::cout.getloc ())
>               << std::endl;
>  
>     // see if my_facet is contained in the locale imbued in cout
>     std::cout << std::has_facet<my_facet>(std::cout.getloc ())
>               << std::endl;
>     return 0;
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.