...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::date_names_put — Output facet base class for gregorian dates.
// In header: <boost/date_time/date_names_put.hpp> template<typename Config, typename charT = char, typename OutputIterator = std::ostreambuf_iterator<charT> > class date_names_put : public facet { public: // types typedef OutputIterator iter_type; typedef Config::month_type month_type; typedef Config::month_enum month_enum; typedef Config::weekday_enum weekday_enum; typedef Config::special_value_enum special_value_enum; typedef std::basic_string< charT > string_type; typedef charT char_type; // construct/copy/destruct date_names_put(); // public member functions std::locale::id & __get_id(void) const; void put_special_value(iter_type &, special_value_enum) const; void put_month_short(iter_type &, month_enum) const; void put_month_long(iter_type &, month_enum) const; void put_weekday_short(iter_type &, weekday_enum) const; void put_weekday_long(iter_type &, weekday_enum) const; bool has_date_sep_chars() const; void year_sep_char(iter_type &) const; void month_sep_char(iter_type &) const; void day_sep_char(iter_type &) const; ymd_order_spec date_order() const; month_format_spec month_format() const; // protected member functions virtual void do_put_month_short(iter_type &, month_enum) const; virtual void do_put_month_long(iter_type &, month_enum) const; virtual void do_put_special_value(iter_type &, special_value_enum) const; virtual void do_put_weekday_short(iter_type &, weekday_enum) const; virtual void do_put_weekday_long(iter_type &, weekday_enum) const; virtual bool do_has_date_sep_chars() const; virtual void do_year_sep_char(iter_type &) const; virtual void do_month_sep_char(iter_type &) const; virtual void do_day_sep_char(iter_type &) const; virtual ymd_order_spec do_date_order() const; virtual month_format_spec do_month_format() const; void put_string(iter_type &, const charT *const) const; void put_string(iter_type &, const string_type &) const; // public data members static const char_type default_special_value_names; static const char_type separator; static std::locale::id id; // Generate storage location for a std::locale::id. };
This class is a base class for date facets used to localize the names of months and the names of days in the week.
Requirements of Config
define an enumeration month_enum that enumerates the months. The enumeration should be '1' based eg: Jan==1
define as_short_string and as_long_string
(see langer & kreft p334).
date_names_put
public member functionsstd::locale::id & __get_id(void) const;
void put_special_value(iter_type & oitr, special_value_enum sv) const;
void put_month_short(iter_type & oitr, month_enum moy) const;
void put_month_long(iter_type & oitr, month_enum moy) const;
void put_weekday_short(iter_type & oitr, weekday_enum wd) const;
void put_weekday_long(iter_type & oitr, weekday_enum wd) const;
bool has_date_sep_chars() const;
void year_sep_char(iter_type & oitr) const;
void month_sep_char(iter_type & oitr) const;char between year-month
void day_sep_char(iter_type & oitr) const;Char to separate month-day.
ymd_order_spec date_order() const;Determines the order to put the date elements.
month_format_spec month_format() const;Determines if month is displayed as integer, short or long string.
date_names_put
protected member functionsvirtual void do_put_month_short(iter_type & oitr, month_enum moy) const;Default facet implementation uses month_type defaults.
virtual void do_put_month_long(iter_type & oitr, month_enum moy) const;Default facet implementation uses month_type defaults.
virtual void do_put_special_value(iter_type & oitr, special_value_enum sv) const;Default facet implementation for special value types.
virtual void do_put_weekday_short(iter_type &, weekday_enum) const;
virtual void do_put_weekday_long(iter_type &, weekday_enum) const;
virtual bool do_has_date_sep_chars() const;
virtual void do_year_sep_char(iter_type & oitr) const;
virtual void do_month_sep_char(iter_type & oitr) const;char between year-month
virtual void do_day_sep_char(iter_type & oitr) const;Char to separate month-day.
virtual ymd_order_spec do_date_order() const;Default for date order.
virtual month_format_spec do_month_format() const;Default month format.
void put_string(iter_type & oi, const charT *const s) const;
void put_string(iter_type & oi, const string_type & s1) const;