# std::time_get< CharT, InIter > Class Template Reference

Facet for parsing dates and times. More...

`#include <locale_facets.h>`

Inheritance diagram for std::time_get< CharT, InIter >:

[legend]
Collaboration diagram for std::time_get< CharT, InIter >:

[legend]
List of all members.

## Public Types

typedef CharT | char_type
| Public typedefs.
typedef InIter | iter_type
| Public typedefs.

## Public Member Functions

| time_get (size_t __refs=0)
| Constructor performs initialization.
dateorder | date_order () const
| Return preferred order of month, day, and year.
iter_type | get_time (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
| Parse input time string.
iter_type | get_date (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
| Parse input date string.
iter_type | get_weekday (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
| Parse input weekday string.
iter_type | get_monthname (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
| Parse input month string.
iter_type | get_year (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
| Parse input year string.

## Static Public Attributes

locale::id | id
| Numpunct facet id.

## Protected Member Functions

virtual | ~time_get ()
| Destructor.
virtual dateorder | do_date_order () const
| Return preferred order of month, day, and year.
virtual iter_type | do_get_time (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
| Parse input time string.
virtual iter_type | do_get_date (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
| Parse input date string.
virtual iter_type | do_get_weekday (iter_type __beg, iter_type __end, ios_base &, ios_base::iostate &__err, tm *__tm) const
| Parse input weekday string.
virtual iter_type | do_get_monthname (iter_type __beg, iter_type __end, ios_base &, ios_base::iostate &__err, tm *__tm) const
| Parse input month string.
virtual iter_type | do_get_year (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
| Parse input year string.

## Detailed Description

### template<typename CharT, typename InIter>
class std::time_get< CharT, InIter >

Facet for parsing dates and times.

This facet encapsulates the code to parse and return a date or time from a string. It is used by the istream numeric extraction operators.

The time_get template uses protected virtual functions to provide the actual results. The public accessors forward the call to the virtual functions. These virtual functions are hooks for developers to implement the behavior they require from the time_get facet.

Definition at line 2982 of file locale_facets.h.

## Member Typedef Documentation

template<typename CharT, typename InIter>
typedef CharT std::time_get< CharT, InIter >::char_type

| Public typedefs. Definition at line 2988 of file locale_facets.h. Referenced by std::time_get< CharT, InIter >::do_get_monthname(), and std::time_get< CharT, InIter >::do_get_weekday().

template<typename CharT, typename InIter>
typedef InIter std::time_get< CharT, InIter >::iter_type

| Public typedefs. Definition at line 2989 of file locale_facets.h.

## Constructor & Destructor Documentation

template<typename CharT, typename InIter>
std::time_get< CharT, InIter >::time_get | ( | size_t | __refs = `0` | ) | `[inline, explicit]`

Constructor performs initialization.

This is the constructor provided by the standard.

Parameters:

  | refs | Passed to the base facet class.

Definition at line 3004 of file locale_facets.h.

template<typename CharT, typename InIter>
virtual std::time_get< CharT, InIter >::~time_get | ( |  | ) | `[inline, protected, virtual]`

| Destructor. Definition at line 3160 of file locale_facets.h.

## Member Function Documentation

template<typename CharT, typename InIter>
dateorder std::time_get< CharT, InIter >::date_order | ( |  | ) | const`[inline]`

Return preferred order of month, day, and year.

This function returns an enum from timebase::dateorder giving the preferred ordering if the format "x" given to time_put::put() only uses month, day, and year. If the format "x" for the associated locale uses other fields, this function returns timebase::dateorder::noorder.

NOTE: The library always returns noorder at the moment.

Returns:
  A member of timebase::dateorder.

Definition at line 3021 of file locale_facets.h.

References std::time_get< CharT, InIter >::do_date_order().

template<typename CharT, typename InIter>
time_base::dateorder std::time_get< CharT, InIter >::do_date_order | ( |  | ) | const`[protected, virtual]`

Return preferred order of month, day, and year.

This function returns an enum from timebase::dateorder giving the preferred ordering if the format "x" given to time_put::put() only uses month, day, and year. This function is a hook for derived classes to change the value returned.

Returns:
  A member of timebase::dateorder.

Definition at line 1724 of file locale_facets.tcc.

Referenced by std::time_get< CharT, InIter >::date_order().

template<typename CharT, typename InIter>
InIter std::time_get< CharT, InIter >::do_get_date | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[protected, virtual]`

Parse input date string.

This function parses a date according to the format "X" and puts the results into a user-supplied struct tm. This function is a hook for derived classes to change the value returned.

See also:
  get_date() for details.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond date string.

Definition at line 2073 of file locale_facets.tcc.

References std::ctype_abstract_base< CharT >::widen().

Referenced by std::time_get< CharT, InIter >::get_date().

template<typename CharT, typename InIter>
InIter std::time_get< CharT, InIter >::do_get_monthname | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | ,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[protected, virtual]`

Parse input month string.

This function parses a month name and puts the results into a user-supplied struct tm. This function is a hook for derived classes to change the value returned.

See also:
  get_monthname() for details.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond month name.

Definition at line 2134 of file locale_facets.tcc.

References std::time_get< CharT, InIter >::char_type.

Referenced by std::time_get< CharT, InIter >::get_monthname().

template<typename CharT, typename InIter>
InIter std::time_get< CharT, InIter >::do_get_time | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[protected, virtual]`

Parse input time string.

This function parses a time according to the format "x" and puts the results into a user-supplied struct tm. This function is a hook for derived classes to change the value returned.

See also:
  get_time() for details.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond time string.

Definition at line 2056 of file locale_facets.tcc.

References std::ctype_abstract_base< CharT >::widen().

Referenced by std::time_get< CharT, InIter >::get_time().

template<typename CharT, typename InIter>
InIter std::time_get< CharT, InIter >::do_get_weekday | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | ,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[protected, virtual]`

Parse input weekday string.

This function parses a weekday name and puts the results into a user-supplied struct tm. This function is a hook for derived classes to change the value returned.

See also:
  get_weekday() for details.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond weekday name.

Definition at line 2090 of file locale_facets.tcc.

References std::time_get< CharT, InIter >::char_type.

Referenced by std::time_get< CharT, InIter >::get_weekday().

template<typename CharT, typename InIter>
InIter std::time_get< CharT, InIter >::do_get_year | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[protected, virtual]`

Parse input year string.

This function reads up to 4 characters to parse a year string and puts the results into a user-supplied struct tm. This function is a hook for derived classes to change the value returned.

See also:
  get_year() for details.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond year.

Definition at line 2180 of file locale_facets.tcc.

References std::ctype_abstract_base< CharT >::narrow().

Referenced by std::time_get< CharT, InIter >::get_year().

template<typename CharT, typename InIter>
iter_type std::time_get< CharT, InIter >::get_date | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[inline]`

Parse input date string.

This function parses a date according to the format "X" and puts the results into a user-supplied struct tm. The result is returned by calling time_get::do_get_date().

If there is a valid date string according to format "X", tm will be filled in accordingly and the returned iterator will point to the first character beyond the date string. If an error occurs before the end, err |= ios_base::failbit. If parsing reads all the characters, err |= ios_base::eofbit.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond date string.

Definition at line 3070 of file locale_facets.h.

References std::time_get< CharT, InIter >::do_get_date(), and std::time_get< CharT, InIter >::get_date().

Referenced by std::time_get< CharT, InIter >::get_date().

template<typename CharT, typename InIter>
iter_type std::time_get< CharT, InIter >::get_monthname | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[inline]`

Parse input month string.

This function parses a month name and puts the results into a user-supplied struct tm. The result is returned by calling time_get::do_get_monthname().

Parsing starts by parsing an abbreviated month name. If a valid abbreviation is followed by a character that would lead to the full month name, parsing continues until the full name is found or an error occurs. Otherwise parsing finishes at the end of the abbreviated name.

If an error occurs before the end, err |= ios_base::failbit. If parsing reads all the characters, err |= ios_base::eofbit.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond month name.

Definition at line 3127 of file locale_facets.h.

References std::time_get< CharT, InIter >::do_get_monthname(), and std::time_get< CharT, InIter >::get_monthname().

Referenced by std::time_get< CharT, InIter >::get_monthname().

template<typename CharT, typename InIter>
iter_type std::time_get< CharT, InIter >::get_time | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[inline]`

Parse input time string.

This function parses a time according to the format "x" and puts the results into a user-supplied struct tm. The result is returned by calling time_get::do_get_time().

If there is a valid time string according to format "x", tm will be filled in accordingly and the returned iterator will point to the first character beyond the time string. If an error occurs before the end, err |= ios_base::failbit. If parsing reads all the characters, err |= ios_base::eofbit.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond time string.

Definition at line 3045 of file locale_facets.h.

References std::time_get< CharT, InIter >::do_get_time(), std::time_get< CharT, InIter >::get_time(), and std::ios_base::iostate.

Referenced by std::time_get< CharT, InIter >::get_time().

template<typename CharT, typename InIter>
iter_type std::time_get< CharT, InIter >::get_weekday | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[inline]`

Parse input weekday string.

This function parses a weekday name and puts the results into a user-supplied struct tm. The result is returned by calling time_get::do_get_weekday().

Parsing starts by parsing an abbreviated weekday name. If a valid abbreviation is followed by a character that would lead to the full weekday name, parsing continues until the full name is found or an error occurs. Otherwise parsing finishes at the end of the abbreviated name.

If an error occurs before the end, err |= ios_base::failbit. If parsing reads all the characters, err |= ios_base::eofbit.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond weekday name.

Definition at line 3098 of file locale_facets.h.

References std::time_get< CharT, InIter >::do_get_weekday(), and std::time_get< CharT, InIter >::get_weekday().

Referenced by std::time_get< CharT, InIter >::get_weekday().

template<typename CharT, typename InIter>
iter_type std::time_get< CharT, InIter >::get_year | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm
| ) | const`[inline]`

Parse input year string.

This function reads up to 4 characters to parse a year string and puts the results into a user-supplied struct tm. The result is returned by calling time_get::do_get_year().

4 consecutive digits are interpreted as a full year. If there are exactly 2 consecutive digits, the library interprets this as the number of years since 1900.

If an error occurs before the end, err |= ios_base::failbit. If parsing reads all the characters, err |= ios_base::eofbit.

Parameters:

  | beg | Start of string to parse.
  | end | End of string to parse.
  | io | Source of the locale.
  | err | Error flags to set.
  | tm | Pointer to struct tm to fill in.

Returns:
  Iterator to first char beyond year.

Definition at line 3153 of file locale_facets.h.

References std::time_get< CharT, InIter >::do_get_year(), and std::time_get< CharT, InIter >::get_year().

Referenced by std::time_get< CharT, InIter >::get_year().

## Member Data Documentation

template<typename CharT, typename InIter>
locale::id std::time_get< CharT, InIter >::id `[static]`

| Numpunct facet id. Definition at line 3291 of file locale_facets.h.

The documentation for this class was generated from the following files:

- locale_facets.h
- locale_facets.tcc