...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::date_time::special_values_formatter — Class that provides generic formmatting ostream formatting for special values.
template<typename CharT, typename OutItrT = std::ostreambuf_iterator<CharT, std::char_traits<CharT> > > class special_values_formatter { public: // types typedef std::basic_string< CharT > string_type; typedef CharT char_type; typedef std::vector< string_type > collection_type; // construct/copy/destruct special_values_formatter(); special_values_formatter(const char_type *const *, const char_type *const *); special_values_formatter(typename collection_type::iterator, typename collection_type::iterator); // public member functions OutItrT put_special(OutItrT, const boost::date_time::special_values &) const; static const char_type default_special_value_names; };
This class provides for the formmating of special values to an output stream. In particular, it produces strings for the values of negative and positive infinity as well as not_a_date_time.
While not a facet, this class is used by the date and time facets for formatting special value types.
special_values_formatter
public
construct/copy/destructspecial_values_formatter();
Default strings are not-a-date-time -infinity +infinity
special_values_formatter(const char_type *const * begin, const char_type *const * end);
This constructor will take pair of iterators from an array of strings that represent the special values and copy them for use in formatting special values.
const char* const special_value_names[]={"nadt","-inf","+inf" }; special_value_formatter svf(&special_value_names[0], &special_value_names[3]); *
special_values_formatter(typename collection_type::iterator beg, typename collection_type::iterator end);