Bug 54354 - TODO extended iomanip manipulators std::get_time and std::put_time (C++11, section 27.7.5)
Summary: TODO extended iomanip manipulators std::get_time and std::put_time (C++11, se...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 4.8.0
: P3 minor
Target Milestone: 5.0
Assignee: Not yet assigned to anyone
URL:
Keywords: ABI
: 57976 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-08-23 02:43 UTC by Fabio Correa
Modified: 2014-12-22 13:49 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2012-08-23 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fabio Correa 2012-08-23 02:43:22 UTC
Hello, keep up the great work with GCC.

I wanted to bring to your attention that the extended <iomanip> manipulators std::get_time and std::put_time have not been declared (C++11, section 27.7.5).

I checked iomanip at http://repo.or.cz/w/official-gcc.git/blob_plain/HEAD:/libstdc%2B%2B-v3/include/std/iomanip

For the time being, you might want to put a notice about the lack of these two manipulators in http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#iso.2011.specific
Comment 1 Jonathan Wakely 2012-08-23 08:37:24 UTC
Author: redi
Date: Thu Aug 23 08:37:19 2012
New Revision: 190616

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190616
Log:
	PR libstdc++/54354
	* doc/xml/manual/status_cxx2011.xml: Note missing manipulators.
	* doc/html/*: Regenerate.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/doc/html/api.html
    trunk/libstdc++-v3/doc/html/faq.html
    trunk/libstdc++-v3/doc/html/index.html
    trunk/libstdc++-v3/doc/html/manual/abi.html
    trunk/libstdc++-v3/doc/html/manual/algorithms.html
    trunk/libstdc++-v3/doc/html/manual/api.html
    trunk/libstdc++-v3/doc/html/manual/appendix_contributing.html
    trunk/libstdc++-v3/doc/html/manual/appendix_free.html
    trunk/libstdc++-v3/doc/html/manual/appendix_gpl.html
    trunk/libstdc++-v3/doc/html/manual/appendix_porting.html
    trunk/libstdc++-v3/doc/html/manual/atomics.html
    trunk/libstdc++-v3/doc/html/manual/backwards.html
    trunk/libstdc++-v3/doc/html/manual/bk01pt02.html
    trunk/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html
    trunk/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html
    trunk/libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html
    trunk/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html
    trunk/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html
    trunk/libstdc++-v3/doc/html/manual/bk01pt03pr01.html
    trunk/libstdc++-v3/doc/html/manual/concurrency.html
    trunk/libstdc++-v3/doc/html/manual/configure.html
    trunk/libstdc++-v3/doc/html/manual/containers.html
    trunk/libstdc++-v3/doc/html/manual/debug.html
    trunk/libstdc++-v3/doc/html/manual/diagnostics.html
    trunk/libstdc++-v3/doc/html/manual/documentation_hacking.html
    trunk/libstdc++-v3/doc/html/manual/extensions.html
    trunk/libstdc++-v3/doc/html/manual/facets.html
    trunk/libstdc++-v3/doc/html/manual/index.html
    trunk/libstdc++-v3/doc/html/manual/intro.html
    trunk/libstdc++-v3/doc/html/manual/io.html
    trunk/libstdc++-v3/doc/html/manual/iterators.html
    trunk/libstdc++-v3/doc/html/manual/localization.html
    trunk/libstdc++-v3/doc/html/manual/memory.html
    trunk/libstdc++-v3/doc/html/manual/numerics.html
    trunk/libstdc++-v3/doc/html/manual/parallel_mode.html
    trunk/libstdc++-v3/doc/html/manual/policy_data_structures.html
    trunk/libstdc++-v3/doc/html/manual/policy_data_structures_design.html
    trunk/libstdc++-v3/doc/html/manual/policy_data_structures_using.html
    trunk/libstdc++-v3/doc/html/manual/profile_mode.html
    trunk/libstdc++-v3/doc/html/manual/status.html
    trunk/libstdc++-v3/doc/html/manual/strings.html
    trunk/libstdc++-v3/doc/html/manual/support.html
    trunk/libstdc++-v3/doc/html/manual/test.html
    trunk/libstdc++-v3/doc/html/manual/using.html
    trunk/libstdc++-v3/doc/html/manual/using_concurrency.html
    trunk/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
    trunk/libstdc++-v3/doc/html/manual/using_exceptions.html
    trunk/libstdc++-v3/doc/html/manual/using_headers.html
    trunk/libstdc++-v3/doc/html/manual/using_macros.html
    trunk/libstdc++-v3/doc/html/manual/utilities.html
    trunk/libstdc++-v3/doc/xml/manual/status_cxx2011.xml
Comment 2 Paolo Carlini 2012-08-23 09:33:37 UTC
This is also because of the ABI: I did the money ones but then noticed that in C++11 time has an additional virtual. It's also a bit discussed in the mailing list.
Comment 3 Daniel Morilha 2013-05-23 17:40:28 UTC
any update on that? is there any workaround? I am trying to parse from ISO 8601 date/time format to C++11 time_points and relied on std::get_time to do the parsing work. Any ideas on how to accomplish that by other means? Thanks
Comment 4 Paolo Carlini 2013-05-23 18:32:52 UTC
We are trying to break the ABI for 4.9
Comment 5 Daniel Morilha 2013-05-23 20:50:01 UTC
I just realized I can use operating system functionality to achieve the same goal. Please ignore my question and thanks for the quick follow up. Looking forward to gcc 4.9.0
Comment 6 Paolo Carlini 2013-07-25 00:24:14 UTC
*** Bug 57976 has been marked as a duplicate of this bug. ***
Comment 7 Jonathan Wakely 2014-10-14 17:01:57 UTC
Author: redi
Date: Tue Oct 14 17:01:25 2014
New Revision: 216211

URL: https://gcc.gnu.org/viewcvs?rev=216211&root=gcc&view=rev
Log:
2014-10-14  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>

	PR libstdc++/54354
	* include/std/iomanip (_Put_time): New struct.
	(put_time): New manipulator.
	(operator<<): New overloaded function.
	* testsuite/27_io/manipulators/extended/put_time/char/1.cc: New.
	* testsuite/27_io/manipulators/extended/put_time/char/2.cc: New.
	* testsuite/27_io/manipulators/extended/put_time/wchar_t/1.cc: New.
	* testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: New.

Added:
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/1.cc
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/2.cc
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/1.cc
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/std/iomanip
Comment 8 Jonathan Wakely 2014-12-22 13:46:24 UTC
Author: redi
Date: Mon Dec 22 13:45:52 2014
New Revision: 219013

URL: https://gcc.gnu.org/viewcvs?rev=219013&root=gcc&view=rev
Log:
2014-12-22  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>

	PR libstdc++/54354
	* include/std/iomanip (_Get_time): New struct.
	(get_time): New manipulator.
	(operator<<): New overloaded function.
	* testsuite/27_io/manipulators/extended/get_time/char/1.cc: New.
	* testsuite/27_io/manipulators/extended/get_time/char/2.cc: New.
	* testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc: New.
	* testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: New.

Added:
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/1.cc
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
    trunk/libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/std/iomanip
Comment 9 Jonathan Wakely 2014-12-22 13:49:22 UTC
Fixed for GCC 5