std:: put time implementation status in GCC?


Estaba tratando de compilar este programa de ejemplo usando GCC (versiones probadas 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';
}

Pero me dice:

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

Pensé, probablemente no está implementado todavía. Así que traté de comprobar el estado de implementación de esta función. Solo encontré esta página:

Pero allí no pude encontrar ninguna nota sobre put_time o chrono o similar. ¿Puede alguien señalarme a un recurso que proporciona información sobre el estado de implementación de esta biblioteca?

Author: moooeeeep, 2013-01-03

2 answers

Ver TODO extended iomanip manipulators std::get_time y std::put_time para gcc 4.8.0.

Ver también Multiplataforma manera de obtener la hora del día? reclamar que no se implementa en 4.7.0.


ACTUALIZACIÓN: Como el desarrollador de gcc Jonathan Wakely confirmó a continuación: Los manipuladores std::get_time y std::put_time todavía faltan en gcc 4.9.


ACTUALIZACIÓN: Jonathan Wakely cerrado este boleto el 22 de diciembre, 2014:

Fijado para el CCG 5

Gracias simonwo por hacérmelo saber.

 70
Author: Ali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:43

Es posible que haya notado que el enlace que dio no lista ninguna partes de la biblioteca! Pero debajo de la tabla dice:

El estado de la implementación de la biblioteca se puede rastrear en esta tabla

Esa tabla señala que std::get_time y std::put_time los manipuladores no están implementados todavía.

Editar: put_time está ahora en el tronco de desarrollo de GCC.

 18
Author: Jonathan Wakely,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-20 12:23:39