# # # patch "sanity.cc" # from [5f84cf0ad3504a1d0ed0e3e9fa4a41d1433cd92f] # to [23b210633a11ce07bf4b89d0d70520677c95ccd2] # # patch "sanity.hh" # from [f3f69a9b7bdbe850b240b4f8267117ab0d1c21cf] # to [d618d18a3417ae2553f7f40553cfec669e4a4883] # ============================================================ --- sanity.cc 5f84cf0ad3504a1d0ed0e3e9fa4a41d1433cd92f +++ sanity.cc 23b210633a11ce07bf4b89d0d70520677c95ccd2 @@ -513,22 +513,16 @@ format_base::operator=(format_base const return *this; } -format_base::format_base(char const * pattern) - : pimpl(new impl(pattern)) +format_base::format_base(char const * pattern, bool use_locale) + : pimpl(use_locale ? new impl(pattern, get_user_locale()) + : new impl(pattern)) {} -format_base::format_base(std::string const & pattern) - : pimpl(new impl(pattern)) +format_base::format_base(std::string const & pattern, bool use_locale) + : pimpl(use_locale ? new impl(pattern, get_user_locale()) + : new impl(pattern)) {} -format_base::format_base(char const * pattern, locale const & loc) - : pimpl(new impl(pattern, loc)) -{} - -format_base::format_base(string const & pattern, locale const & loc) - : pimpl(new impl(pattern, loc)) -{} - ostream & format_base::get_stream() const { @@ -561,16 +555,6 @@ format_base::str() const return pimpl->fmt.str(); } -i18n_format::i18n_format(const char * localized_pattern) - : format_base(localized_pattern, get_user_locale()) -{ -} - -i18n_format::i18n_format(std::string const & localized_pattern) - : format_base(localized_pattern, get_user_locale()) -{ -} - ostream & operator<<(ostream & os, format_base const & fmt) { ============================================================ --- sanity.hh f3f69a9b7bdbe850b240b4f8267117ab0d1c21cf +++ sanity.hh d618d18a3417ae2553f7f40553cfec669e4a4883 @@ -16,7 +16,6 @@ #include #include #include -#include #include "boost/current_function.hpp" @@ -124,10 +123,9 @@ protected: ~format_base(); format_base(format_base const & other); format_base & operator=(format_base const & other); - explicit format_base(char const * pattern); - explicit format_base(std::string const & pattern); - explicit format_base(char const * pattern, std::locale const & loc); - explicit format_base(std::string const & pattern, std::locale const & loc); + + explicit format_base(char const * pattern, bool use_locale); + explicit format_base(std::string const & pattern, bool use_locale); public: // It is a lie that these are const; but then, everything about this // class is a lie. @@ -156,11 +154,11 @@ plain_format {} explicit plain_format(char const * pattern) - : format_base(pattern) + : format_base(pattern, false) {} explicit plain_format(std::string const & pattern) - : format_base(pattern) + : format_base(pattern, false) {} }; @@ -228,9 +226,16 @@ i18n_format i18n_format : public format_base { - i18n_format() {} - explicit i18n_format(const char * localized_pattern); - explicit i18n_format(std::string const & localized_pattern); + i18n_format() + {} + + explicit i18n_format(const char * localized_pattern) + : format_base(localized_pattern, true) + {} + + explicit i18n_format(std::string const & localized_pattern) + : format_base(localized_pattern, true) + {} }; template inline i18n_format const &