std::put_time implementation status in GCC?

C++GccC++11StdChrono

C++ Problem Overview


I was trying to compile this example program using GCC (tested versions 4.5.1, 4.6.3, 4.8.4):

#include <iostream>
#include <iomanip>
#include <ctime>
#include <chrono>
 
using std::chrono::system_clock;
 
int main()
{
    system_clock::time_point now = system_clock::now();
    std::time_t now_c = system_clock::to_time_t(
                            now - std::chrono::hours(24));
    std::cout << "One day ago, the time was "
              << std::put_time(std::localtime(&now_c), "%F %T") << '\n';
}

But it tells me:

prog.cpp: In function 'int main()':
prog.cpp:14:18: error: 'put_time' is not a member of 'std'

I thought, probably it's not implemented yet. So I tried to check the implementation status for this function. I only found this page:

but there I could not find any note on put_time or chrono or alike. Can anyone point me to a resource that provides information on the implementation status for this library?

C++ Solutions


Solution 1 - C++

See TODO extended iomanip manipulators std::get_time and std::put_time for gcc 4.8.0.

See also Cross Platform way to get the time of day? claiming that is not implemented in 4.7.0.


UPDATE: As the gcc developer Jonathan Wakely confirmed below: The std::get_time and std::put_time manipulators are still missing in gcc 4.9.


UPDATE: Jonathan Wakely closed this ticket on 22 Dec, 2014:

> Fixed for GCC 5

Thanks simonwo for letting me know about it.

Solution 2 - C++

You might have noticed the link you gave doesn't list any parts of the library! But below the table it says:

> The status of the library implementation can be tracked in this table

That table notes that std::get_time and std::put_time manipulators are not implemented yet.

Edit: put_time is now on the GCC development trunk.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmoooeeeepView Question on Stackoverflow
Solution 1 - C++AliView Answer on Stackoverflow
Solution 2 - C++Jonathan WakelyView Answer on Stackoverflow