std :: stato di implementazione put_time in GCC?

Stavo cercando di compilare questo programma di esempio usando GCC (versioni testate 4.5.1, 4.6.3, 4.8.4):

#include  #include  #include  #include  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'; } 

Ma mi dice:

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

Ho pensato, probabilmente non è ancora stato implementato. Così ho provato a verificare lo stato di implementazione di questa funzione. Ho trovato solo questa pagina:

  • http://gcc.gnu.org/projects/cxx0x.html

ma lì non ho trovato nessuna nota su put_time o chrono o simili. Qualcuno può indicarmi una risorsa che fornisce informazioni sullo stato di implementazione di questa libreria?

Vedi manipolatori iomanip TODO estesi std :: get_time e std :: put_time per gcc 4.8.0.

Vedi anche il modo Cross Platform per ottenere l’ora del giorno? affermando che non è implementato in 4.7.0.


AGGIORNAMENTO: Come lo sviluppatore gcc Jonathan Wakely ha confermato di seguito: I manipolatori std::get_time e std::put_time mancano ancora in gcc 4.9.


AGGIORNAMENTO: Jonathan Wakely ha chiuso questo ticket il 22 dicembre 2014:

Risolto il problema con GCC 5

Grazie a simonwo per avermelo fatto sapere.

Potresti aver notato che il link che hai fornito non elenca alcuna parte della libreria! Ma sotto il tavolo si dice:

Lo stato dell’implementazione della libreria può essere tracciato in questa tabella

Quella tabella std::get_time che std::get_time e std::put_time manipulators non sono ancora implementati.

Modifica: ora put_time trova nel trunk di sviluppo GCC.