GCCを使用して このサンプルプログラム をコンパイルしようとしました(テスト済みバージョン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';
}
prog.cpp: In function 'int main()':
prog.cpp:14:18: error: 'put_time' is not a member of 'std'
おそらくまだ実装されていないと思いました。そこで、この機能の実装状況を確認しようとしました。私はこのページのみを見つけました:
しかし、put_time
やchrono
などに関するメモは見つかりませんでした。このライブラリの実装ステータスに関する情報を提供するリソースを誰かに教えてもらえますか?
TODO拡張iomanipマニピュレーターstd :: get_timeおよびstd :: put_time gcc 4.8.0を参照してください。
時刻を取得するためのクロスプラットフォームの方法? 4.7.0で実装されていないという主張も参照してください。
UPDATE:gcc開発者として Jonathan Wakely確認済み 以下:std::get_time
およびstd::put_time
マニピュレータは、gcc 4.9にはまだありません。
UPDATE:Jonathan Wakely closed 2014年12月22日にこのチケット:
GCC 5向けに修正
simonwo 教えてくれてありがとう。
あなたはあなたが与えたリンクがライブラリのany部分をリストしていないことに気づいたかもしれません!しかし、テーブルの下には次のように書かれています。
ライブラリの実装のステータスは、この中で追跡できます テーブル
その表は、std::get_time
およびstd::put_time
マニピュレータはまだ実装されていません。
編集:put_time
は現在GCC開発トランクにあります。