[ https://issues.apache.org/jira/browse/STDCXX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Farid Zaripov resolved STDCXX-462. ---------------------------------- Resolution: Fixed Documentation updated thus: http://svn.apache.org/viewvc?rev=570219&view=rev > 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.2, 4.1.3 > 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. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.