stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Updated: (STDCXX-307) std::streambuf::imbue() stores locale when it shouldn't
Date Fri, 01 Jun 2007 21:52:15 GMT

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

Martin Sebor updated STDCXX-307:
--------------------------------

    Affects Version/s: 4.1.3
                       4.1.2

> std::streambuf::imbue() stores locale when it shouldn't
> -------------------------------------------------------
>
>                 Key: STDCXX-307
>                 URL: https://issues.apache.org/jira/browse/STDCXX-307
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 27. Input/Output
>    Affects Versions: 4.1.3, 4.1.2
>         Environment: all
>            Reporter: Martin Sebor
>
> According to 27.5.2.4.1 [streambuf.virt.locales], p3, the default behavior of std::streambuf::imbue()
is to do nothing. The program below detects
> whether the function stores the locale passed to it (it's not expected to). When compiled
against the latest trunk the program abots at runtime
> indicating that the function does, in fact, store the locale, contrary to the requirement.
> $ cat z.cpp && make z && ./z
> #include <cassert>
> #include <locale>
> #include <streambuf>
> struct MyFacet: std::locale::facet { static std::locale::id id; };
> std::locale::id MyFacet::id;
> int main ()
> {
>     struct MyBuf: std::streambuf {
>         void imbue (const std::locale &loc) {
>             std::streambuf::imbue (loc);
>         }
>     } buf;
>     const std::locale loc (buf.getloc (), new MyFacet);
>     assert (std::has_facet<MyFacet>(loc));
>     assert (!std::has_facet<MyFacet>(buf.getloc ()));
>     buf.imbue (loc);
>     assert (!std::has_facet<MyFacet>(buf.getloc ()));
> }
> gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG    -D_RWSTD_USE_CONFIG -I/build/sebor/dev/stdlib/include
-I/build/sebor/gcc-4.1.0-11s/include -I/build/sebor/dev/stdlib/examples/include  -pedantic
-nostdinc++ -g  -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long   z.cpp
> gcc z.o -o z  -L/build/sebor/gcc-4.1.0-11s/lib -lstd11s  -lsupc++ -lm 
> Assertion failed: !std::has_facet<MyFacet>(buf.getloc ()), file z.cpp, line 23
> Abort (core dumped)

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


Mime
View raw message