Farid Zaripov (JIRA) wrote:
     [ 
https://issues.apache.org/jira/browse/STDCXX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Farid Zaripov closed STDCXX-462.
--------------------------------

FYI, this is a documentation bug. We need to change the code
on the Class Reference page as well:
http://incubator.apache.org/stdcxx/doc/stdlibref/time-get.html

It sure would be nice to figure out a way to automate these
updates between the example sources and the code in the docs.
A couple of possible approaches are here:
http://www.mail-archive.com/stdcxx-dev@incubator.apache.org/msg03284.html

Any other ideas?

Martin



std::time_get example exposes undefined behavior
------------------------------------------------

                Key: STDCXX-462
                URL: https://issues.apache.org/jira/browse/STDCXX-462
            Project: C++ Standard Library
         Issue Type: Bug
         Components: Documentation
   Affects Versions: 4.1.3, 4.1.2
           Reporter: Martin Sebor
           Assignee: Farid Zaripov
           Priority: Critical
            Fix For: 4.2


The example program demonstrating the use of the std::time_get facet 
(http://incubator.apache.org/stdcxx/doc/stdlibref/time-get.html) exposes 
undefined behavior. Quoting from the following post 
http://www.mail-archive.com/stdcxx-dev@incubator.apache.org/msg03760.html:
Martin Sebor wrote:
Farid Zaripov wrote:
[...]
  Btw below is a part of the conforming program (taken from
time_get.cpp)?
It's not a conforming program. The locale must stay around as
long as the last reference to the facet obtained from it. The
tests that fail to follow this rule should be changed.

-------------------
    const std::time_get<char, Iter> &tg =
        std::use_facet<std::time_get<char, Iter> >(std::locale ("C"));

    // Display time_base::dateorder value.
    std::cout << "time_base::dateorder == " << tg.date_order () <<
".\n";
-------------------

  This fragment fails on Dinkumware STL because of tg.date_order() uses
(internal)
pointer to the destroyed locale object.
Right, and that's allowed.


Reply via email to