web-dev-qa-db-ja.com

GCCのstd :: put_time実装ステータス?

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_timechronoなどに関するメモは見つかりませんでした。このライブラリの実装ステータスに関する情報を提供するリソースを誰かに教えてもらえますか?

61
moooeeeep

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 教えてくれてありがとう。

74
Ali

あなたはあなたが与えたリンクがライブラリのany部分をリストしていないことに気づいたかもしれません!しかし、テーブルの下には次のように書かれています。

ライブラリの実装のステータスは、この中で追跡できます テーブル

その表は、std::get_timeおよびstd::put_timeマニピュレータはまだ実装されていません。

編集:put_timeは現在GCC開発トランクにあります。

19
Jonathan Wakely