std:: mettre l'état de la mise en œuvre du temps dans GCC?

j'essayais de compiler cet exemple de programme en utilisant GCC (versions testées 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';
}

mais il me dit:

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

j'ai pensé, probablement il n'est pas encore mis en œuvre. J'ai donc essayé de vérifier le statut d'implémentation de cette fonction. Je n'ai trouvé cette page:

mais je n'ai pu trouver aucune note sur put_time ou chrono ou similaire. Quelqu'un peut-il m'indiquer une ressource qui fournit des informations sur l'état de mise en œuvre de cette bibliothèque?

54
demandé sur moooeeeep 2013-01-03 14:16:48

2 réponses

Voir TODO étendu iomanip manipulateurs std::get_time et std::put_time pour gcc 4.8.0.

Voir aussi de la Croix-Plate-forme de façon à obtenir le moment de la journée? qui n'est pas mis en œuvre dans la section 4.7.0.


mise à jour: comme le développeur gcc Jonathan Wakely confirmé ci-dessous: les manipulateurs std::get_time et std::put_time sont toujours introuvable dans gcc 4.9.


mise à jour: Jonathan Wakely fermé ce billet le 22 décembre, 2014:

fixe pour GCC 5

Merci simonwo de m'en avoir informé.

70
répondu Ali 2017-05-23 11:54:43

vous avez peut-être remarqué que le lien que vous avez donné ne répertorie pas les parties de la bibliothèque! Mais en dessous du tableau il y a écrit:

l'état de la mise en œuvre de la bibliothèque peut être suivi dans ce table

ce tableau indique que les manipulateurs std::get_time et std::put_time ne sont pas encore mis en œuvre.

Edit: put_time est maintenant sur le GCC le développement du tronc.

18
répondu Jonathan Wakely 2014-11-20 12:23:39