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 == endがtrueとなる場合、err |=std::ios_base::eofbitを評価する。
%c・%x・%Xのような複雑な変換指定、もしくは省略可能な修飾子EやOを伴う変換指定において、入力列[s, end)から一部またはすべてのtmのメンバを曖昧さなく決定できない場合、err |=std::ios_base::eofbitを評価する。この場合、それらのtmのメンバの値は未規定であり、妥当な範囲の外にある可能性がある。
戻り値
与えられたformatとmodifierに対する妥当な入力列の一部でありうると認識した、最後の文字の直後を指すイテレータ。
備考
同じtmオブジェクトのアドレスに対してdo_get()を複数回呼び出したとき、オブジェクトの現在の内容が更新されるのか、単にメンバが上書きされるのかは未規定である。移植性のあるプログラムでは、この関数を呼び出す前にオブジェクトをゼロクリアすべきである。
バージョン
言語
- C++11