| Home | Libraries | People | FAQ | More

## Class template special_values_parser

boost::date_time::special_values_parser — Class for special_value parsing.

## Synopsis

    // In header: <boost/date_time/special_values_parser.hpp>

    template<typename date_type, typename charT>
    class special_values_parser {
    public:
      // types
      typedef std::basic_string< charT >                string_type;
      typedef std::istreambuf_iterator< charT >         stream_itr_type;
      typedef date_type::duration_type                  duration_type;
      typedef string_parse_tree< charT >                parse_tree_type;
      typedef parse_tree_type::parse_match_result_type  match_results;
      typedef std::vector< std::basic_string< charT > > collection_type;
      typedef charT                                     char_type;

      // construct/copy/destruct
      special_values_parser();
      special_values_parser(const string_type &, const string_type &,
                            const string_type &, const string_type &,
                            const string_type &);
      special_values_parser(typename collection_type::iterator,
                            typename collection_type::iterator);
      special_values_parser(const special_values_parser< date_type, charT > &);

      // public member functions
      void sv_strings(const string_type &, const string_type &,
                      const string_type &, const string_type &,
                      const string_type &);
      bool match(stream_itr_type &, stream_itr_type &, match_results &) const;

      // public data members
      static const char_type nadt_string;
      static const char_type neg_inf_string;
      static const char_type pos_inf_string;
      static const char_type min_date_time_string;
      static const char_type max_date_time_string;
    };

## Description

TODO: add doc-comments for which elements can be changed Parses input stream for strings representing special_values. Special values parsed are:

- not_a_date_time

- neg_infin

- pod_infin

- min_date_time

- max_date_time

### `special_values_parser` public construct/copy/destruct

1.     special_values_parser();

   Creates a `special_values_parser` with the default set of "sv_strings".

2.     special_values_parser(const string_type & nadt_str,
                             const string_type & neg_inf_str,
                             const string_type & pos_inf_str,
                             const string_type & min_dt_str,
                             const string_type & max_dt_str);

   Creates a `special_values_parser` using a user defined set of element strings.

3.     special_values_parser(typename collection_type::iterator beg,
                             typename collection_type::iterator end);

4.     special_values_parser(const special_values_parser< date_type, charT > & svp);

### `special_values_parser` public member functions

1.     void sv_strings(const string_type & nadt_str, const string_type & neg_inf_str,
                       const string_type & pos_inf_str,
                       const string_type & min_dt_str,
                       const string_type & max_dt_str);

   Replace special value strings.

2.     bool match(stream_itr_type & sitr, stream_itr_type & str_end,
                  match_results & mr) const;

   Sets match_results.current_match to the corresponding special_value or -1.