cpp/locale/time get/get

@1@ Parses the date and time from the input character sequence according to the format provided in the character sequence. The format is expected to follow the format described below, although actual processing of each format specifier can be customized by overriding. The function performs the following: First, clears the error bits in by executing. Then enters a loop, which terminates whenever any of the following conditions becomes true (checked in this order):
 * @a@ All characters have been read from the format string
 * @b@ There was a parsing error
 * @c@ All characters have been read from the input sequence (. If this condition terminates the loop, the function sets both and  in


 * In the body of the loop, the following steps take place:
 * @a@ if the next character in the format string is, followed by one or two characters that form a valid std conversion specifier (see below), these characters are used in the call , where is the primary conversion specifier character, and  is the optional modifier (which appears between  and the format character, if present). If there is no modifier, the value  is used. If the format string is ambiguous or ends too early to determine the conversion specifier after ,  is set in  and the loop is terminated. If, after the call to , no error bits are set in , the function increments  to point right after the conversion specifier and continues the loop.
 * @b@ If the next character is whitespace, as indicated by the locale provided in the stream (i.e., the function keeps incrementing  until it either becomes equal to  or points to a non-whitespace character.
 * @c@ If the next character in the format string is equivalent to the next character in the input stream according to case-insensitive comparison, the function advances both sequences by one character and continues the loop, Otherwise, it sets the  in.

@2@ Parses one conversion specifier from the input sequence and updates the std structure pointed to by  accordingly.


 * First, clears the error bits in by executing . Then reads characters from the input sequence  that are expected by the std format specifier formed by combining,  (if not ), and . If the characters do not combine to form a valid conversion specifier, sets  in . If the end of the input stream is reached after reading a character, sets  in . If the input string was parsed successfully, updates the corresponding fields of.


 * For complex conversion specifiers, such as or, or the directives that use the modifiers  and , the function may fail to determine some of the values to store in . In such case, it sets  in  and leaves these fields in unspecified state.

Return value
Iterator pointing one past the last character in that was parsed successfully.