libstdc++: std::time_get< _CharT, _InIter > Class Template Reference

libstdc++

std::time_get< _CharT, _InIter > Class Template Reference
Locales

`#include <locale_facets_nonio.h>`

Inheritance diagram for std::time_get< _CharT, _InIter >:
[legend]

## Public Types
enum | dateorder { no_order , dmy , mdy , ymd , ydm }
typedef _CharT | char_type
typedef _InIter | iter_type

## Public Member Functions
| time_get (size_t __refs=0)
dateorder | date_order () const
iter_type | get (iter_type __s, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm, char __format, char __modifier=0) const
iter_type | get (iter_type __s, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm, const char_type *__fmt, const char_type *__fmtend) const
iter_type | get_date (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
iter_type | get_monthname (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
iter_type | get_time (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
iter_type | get_weekday (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
iter_type | get_year (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const

## Static Public Attributes
static locale::id | id

## Protected Member Functions
virtual | ~time_get ()
iter_type | _M_extract_name (iter_type __beg, iter_type __end, int &__member, const _CharT **__names, size_t __indexlen, ios_base &__io, ios_base::iostate &__err) const
iter_type | _M_extract_num (iter_type __beg, iter_type __end, int &__member, int __min, int __max, size_t __len, ios_base &__io, ios_base::iostate &__err) const
iter_type | _M_extract_via_format (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm, const _CharT *__format) const
iter_type | _M_extract_via_format (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm, const _CharT *__format, __time_get_state &__state) const
iter_type | _M_extract_wday_or_month (iter_type __beg, iter_type __end, int &__member, const _CharT **__names, size_t __indexlen, ios_base &__io, ios_base::iostate &__err) const
virtual dateorder | do_date_order () const
iter_type | do_get (iter_type __s, iter_type __end, ios_base &__f, ios_base::iostate &__err, tm *__tm, char __format, char __modifier) const
virtual iter_type | do_get_date (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
virtual iter_type | do_get_monthname (iter_type __beg, iter_type __end, ios_base &, ios_base::iostate &__err, tm *__tm) const
virtual iter_type | do_get_time (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const
virtual iter_type | do_get_weekday (iter_type __beg, iter_type __end, ios_base &, ios_base::iostate &__err, tm *__tm) const
virtual iter_type | do_get_year (iter_type __beg, iter_type __end, ios_base &__io, ios_base::iostate &__err, tm *__tm) const

## Static Protected Member Functions
static __c_locale | _S_clone_c_locale (__c_locale &__cloc) throw ()
static void | _S_create_c_locale (__c_locale &__cloc, const char *__s, __c_locale __old=0)
static void | _S_destroy_c_locale (__c_locale &__cloc)
static __c_locale | _S_get_c_locale ()
static const char * | _S_get_c_name () throw ()
static __c_locale | _S_lc_ctype_c_locale (__c_locale __cloc, const char *__s)

## Detailed Description

template<typename _CharT, typename _InIter>
class std::time_get< _CharT, _InIter >

Primary class template time_get.

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 400 of file locale_facets_nonio.h.

## Member Typedef Documentation

## ◆ char_type

template<typename _CharT, typename _InIter>

typedef _CharT std::time_get< _CharT, _InIter >::char_type

Public typedefs.

Definition at line 406 of file locale_facets_nonio.h.

## ◆ iter_type

template<typename _CharT, typename _InIter>

typedef _InIter std::time_get< _CharT, _InIter >::iter_type

Public typedefs.

Definition at line 407 of file locale_facets_nonio.h.

## Member Enumeration Documentation

## ◆ dateorder

enum std::time_base::dateorder
| inherited

Definition at line 57 of file locale_facets_nonio.h.

## Constructor & Destructor Documentation

## ◆ time_get()

template<typename _CharT, typename _InIter>

std::time_get< _CharT, _InIter >::time_get | ( | size_t | __refs = 0 | ) |
| inlineexplicit

Constructor performs initialization.

This is the constructor provided by the standard.

Parameters

  __refs | Passed to the base facet class.

Definition at line 421 of file locale_facets_nonio.h.

References std::locale::facet::facet().

## ◆ ~time_get()

template<typename _CharT, typename _InIter>

virtual std::time_get< _CharT, _InIter >::~time_get | ( |  | ) |
| inlineprotectedvirtual

Destructor.

Definition at line 625 of file locale_facets_nonio.h.

## Member Function Documentation

## ◆ _M_extract_name()

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::_M_extract_name | ( | iter_type | __beg,
|  | iter_type | __end,
|  | int & | __member,
|  | const _CharT ** | __names,
|  | size_t | __indexlen,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err ) const
| protected

Definition at line 1093 of file locale_facets_nonio.tcc.

## ◆ _M_extract_num()

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::_M_extract_num | ( | iter_type | __beg,
|  | iter_type | __end,
|  | int & | __member,
|  | int | __min,
|  | int | __max,
|  | size_t | __len,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err ) const
| protected

Definition at line 1056 of file locale_facets_nonio.tcc.

## ◆ _M_extract_via_format() [1/2]

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::_M_extract_via_format | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm,
|  | const _CharT * | __format ) const
| protected

Definition at line 1044 of file locale_facets_nonio.tcc.

## ◆ _M_extract_via_format() [2/2]

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::_M_extract_via_format | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm,
|  | const _CharT * | __format,
|  | __time_get_state & | __state ) const
| protected

Definition at line 696 of file locale_facets_nonio.tcc.

## ◆ _M_extract_wday_or_month()

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::_M_extract_wday_or_month | ( | iter_type | __beg,
|  | iter_type | __end,
|  | int & | __member,
|  | const _CharT ** | __names,
|  | size_t | __indexlen,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err ) const
| protected

Definition at line 1255 of file locale_facets_nonio.tcc.

## ◆ date_order()

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 time_base::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 time_base::dateorder::noorder.

NOTE: The library always returns noorder at the moment.

Returns
  A member of time_base::dateorder.

Definition at line 438 of file locale_facets_nonio.h.

References do_date_order().

## ◆ do_date_order()

template<typename _CharT, typename _InIter>

_GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 time_base::dateorder std::time_get< _CharT, _InIter >::do_date_order | ( |  | ) | const
| protectedvirtual

Return preferred order of month, day, and year.

This function returns an enum from time_base::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 time_base::dateorder.

Definition at line 689 of file locale_facets_nonio.tcc.

Referenced by date_order().

## ◆ do_get()

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::do_get | ( | iter_type | __s,
|  | iter_type | __end,
|  | ios_base & | __f,
|  | ios_base::iostate & | __err,
|  | tm * | __tm,
|  | char | __format,
|  | char | __modifier ) const
| inlineprotected

Parse input string according to format.

This function parses the string according to the provided format and optional modifier. This function is a hook for derived classes to change the value returned.

See also
  get() for more details.

Parameters

  __s | Start of string to parse.
  __end | End of string to parse.
  __f | Source of the locale.
  __err | Error flags to set.
  __tm | Pointer to struct tm to fill in.
  __format | Format specifier.
  __modifier | Format modifier.

Returns
  Iterator to first char not parsed.

Definition at line 1575 of file locale_facets_nonio.tcc.

References std::ios_base::_M_getloc(), std::ios_base::eofbit, std::ios_base::goodbit, std::use_facet(), and std::__ctype_abstract_base< _CharT >::widen().

Referenced by get(), and get().

## ◆ do_get_date()

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
| protectedvirtual

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 1346 of file locale_facets_nonio.tcc.

References std::ios_base::_M_getloc(), std::ios_base::eofbit, and std::use_facet().

Referenced by get_date().

## ◆ do_get_monthname()

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::do_get_monthname | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm ) const
| protectedvirtual

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 1391 of file locale_facets_nonio.tcc.

References std::ios_base::_M_getloc(), std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::use_facet().

Referenced by get_monthname().

## ◆ do_get_time()

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
| protectedvirtual

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 1327 of file locale_facets_nonio.tcc.

References std::ios_base::_M_getloc(), std::ios_base::eofbit, and std::use_facet().

Referenced by get_time().

## ◆ do_get_weekday()

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::do_get_weekday | ( | iter_type | __beg,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm ) const
| protectedvirtual

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 1365 of file locale_facets_nonio.tcc.

References std::ios_base::_M_getloc(), std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, and std::use_facet().

Referenced by get_weekday().

## ◆ do_get_year()

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
| protectedvirtual

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 1417 of file locale_facets_nonio.tcc.

References std::ios_base::_M_getloc(), std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, std::__ctype_abstract_base< _CharT >::narrow(), and std::use_facet().

Referenced by get_year().

## ◆ get() [1/2]

template<typename _CharT, typename _InIter>

iter_type std::time_get< _CharT, _InIter >::get | ( | iter_type | __s,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm,
|  | char | __format,
|  | char | __modifier = 0 ) const
| inline

Parse input string according to format.

This function calls time_get::do_get with the provided parameters.

See also
  do_get() and get().

Parameters

  __s | 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.
  __format | Format specifier.
  __modifier | Format modifier.

Returns
  Iterator to first char not parsed.

Definition at line 591 of file locale_facets_nonio.h.

References do_get().

## ◆ get() [2/2]

template<typename _CharT, typename _InIter>

_InIter std::time_get< _CharT, _InIter >::get | ( | iter_type | __s,
|  | iter_type | __end,
|  | ios_base & | __io,
|  | ios_base::iostate & | __err,
|  | tm * | __tm,
|  | const char_type * | __fmt,
|  | const char_type * | __fmtend ) const
| inline

Parse input string according to format.

This function parses the input string according to a provided format string. It does the inverse of time_put::put. The format string follows the format specified for strftime(3)/strptime(3). The actual parsing is done by time_get::do_get.

Parameters

  __s | 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.
  __fmt | Start of the format string.
  __fmtend | End of the format string.

Returns
  Iterator to first char not parsed.

Definition at line 1467 of file locale_facets_nonio.tcc.

References std::ios_base::_M_getloc(), do_get(), std::ios_base::eofbit, std::ios_base::failbit, std::ios_base::goodbit, std::__ctype_abstract_base< _CharT >::is(), std::__ctype_abstract_base< _CharT >::narrow(), std::__ctype_abstract_base< _CharT >::tolower(), std::__ctype_abstract_base< _CharT >::toupper(), and std::use_facet().

## ◆ get_date()

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 487 of file locale_facets_nonio.h.

References do_get_date().

## ◆ get_monthname()

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 544 of file locale_facets_nonio.h.

References do_get_monthname().

## ◆ get_time()

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 462 of file locale_facets_nonio.h.

References do_get_time().

## ◆ get_weekday()

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 515 of file locale_facets_nonio.h.

References do_get_weekday().

## ◆ get_year()

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 570 of file locale_facets_nonio.h.

References do_get_year().

## Member Data Documentation

## ◆ id

template<typename _CharT, typename _InIter>

locale::id std::time_get< _CharT, _InIter >::id
| static

Numpunct facet id.

Definition at line 411 of file locale_facets_nonio.h.

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

- locale_facets_nonio.h
- locale_facets_nonio.tcc