最終更新日時:
が更新

履歴 編集

function
<locale>

std::time_get::do_get(C++11)

protected:
  virtual iter_type do_get(iter_type s, iter_type end, ios_base& f,
                           ios_base::iostate& err, tm* t,
                           char format, char modifier) const; // (1) C++11

概要

書式指定子を指定して日時を解析する。get()から呼び出される仮想関数である。

事前条件

tがオブジェクトを指していること。

効果

err =std::ios_base::goodbitを評価したのち、sから文字を読み取る。エラーに遭遇するか、'%'modifier(非NULの場合)・formatを連結して形成される、POSIX関数strptimeにとって適切な変換指定に対応するtmのメンバと残りの書式文字を抽出して代入し終えるまで、処理を続ける。

連結が完全かつ妥当な指定を与えない場合、tが指すオブジェクトは変更せず、err |=std::ios_base::failbitを評価する。

文字を読み取った後にs == endtrueとなる場合、err |=std::ios_base::eofbitを評価する。

%c%x%Xのような複雑な変換指定、もしくは省略可能な修飾子EOを伴う変換指定において、入力列[s, end)から一部またはすべてのtmのメンバを曖昧さなく決定できない場合、err |=std::ios_base::eofbitを評価する。この場合、それらのtmのメンバの値は未規定であり、妥当な範囲の外にある可能性がある。

戻り値

与えられたformatmodifierに対する妥当な入力列の一部でありうると認識した、最後の文字の直後を指すイテレータ。

備考

同じtmオブジェクトのアドレスに対してdo_get()を複数回呼び出したとき、オブジェクトの現在の内容が更新されるのか、単にメンバが上書きされるのかは未規定である。移植性のあるプログラムでは、この関数を呼び出す前にオブジェクトをゼロクリアすべきである。

バージョン

言語

  • C++11

関連項目