namespace std {
template<class charT, class OutputIterator = ostreambuf_iterator<charT>>
class time_put : public locale::facet {
public:
using char_type = charT;
using iter_type = OutputIterator;
explicit time_put(size_t refs = 0);
iter_type put(iter_type s, ios_base& f, char_type fill, const tm* tmb,
const charT* pattern, const charT* pat_end) const;
iter_type put(iter_type s, ios_base& f, char_type fill,
const tm* tmb, char format, char modifier = 0) const;
static locale::id id;
protected:
~time_put();
virtual iter_type do_put(iter_type s, ios_base&, char_type, const tm* t,
char format, char modifier) const;
};
}
iter_type put(iter_type s, ios_base& str, char_type fill, const tm* t,
const charT* pattern, const charT* pat_end) const;
iter_type put(iter_type s, ios_base& str, char_type fill, const tm* t,
char format, char modifier = 0) const;
Effects: The first form steps through the sequence from
pattern
to
pat_end,
identifying characters that are part of a format sequence
. Each character that is not part of a format sequence is written to
s
immediately, and each format sequence, as it is identified, results in
a call to
do_put;
thus, format elements and other characters are interleaved in the output
in the order in which they appear in the pattern
. Format sequences are identified by converting each character
c
to a
char
value as if by
ct.narrow(c, 0),
where
ct
is a reference to
ctype<charT>
obtained from
str.getloc(). The first character of each sequence is equal to
'%',
followed by an optional modifier character
mod
and a format specifier character
spec
as defined for the function
strftime. If no modifier character is present,
mod
is zero
. For each valid format sequence identified, calls
do_put(s, str, fill, t, spec, mod).The second form calls
do_put(s, str, fill, t, format, modifier).[
Note 1:
The
fill argument can be used in the implementation-defined
formats or by derivations
. A space character is a reasonable
default for this argument
. —
end note]
Returns: An iterator pointing immediately after the last character produced
. iter_type do_put(iter_type s, ios_base&, char_type fill, const tm* t,
char format, char modifier) const;
Effects: Formats the contents of the parameter
t
into characters placed on the output sequence
s. Formatting is controlled by the parameters
format and
modifier,
interpreted identically as the format specifiers in the string
argument to the standard library function
strftime(),
except that the sequence of characters produced for those specifiers
that are described as depending on the C locale are instead
implementation-defined
. [
Note 1:
Interpretation of the
modifier
argument is implementation-defined
. —
end note]
Returns: An iterator pointing immediately after the last character produced
. [
Note 2:
The
fill argument can be used in the implementation-defined
formats or by derivations
. A space character is a reasonable
default for this argument
. —
end note]
Recommended practice: Interpretation of the
modifier should follow POSIX conventions
. Implementations should refer to other standards such as POSIX
for a specification of the character sequences produced for
those specifiers described as depending on the C locale
.