diff options
Diffstat (limited to 'boost/ratio/ratio_io.hpp')
-rw-r--r-- | boost/ratio/ratio_io.hpp | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/boost/ratio/ratio_io.hpp b/boost/ratio/ratio_io.hpp index 9945e6bea9..1b87788ca9 100644 --- a/boost/ratio/ratio_io.hpp +++ b/boost/ratio/ratio_io.hpp @@ -35,6 +35,7 @@ struct ratio_string #include <boost/config.hpp> #include <boost/ratio/ratio.hpp> +#include <boost/type_traits/integral_constant.hpp> #include <string> #include <sstream> @@ -51,11 +52,18 @@ struct ratio_string namespace boost { +template <class Ratio> +struct ratio_string_is_localizable : false_type {}; +template <class Ratio> +struct ratio_string_id : integral_constant<int,0> {}; + template <class Ratio, class CharT> struct ratio_string { static std::basic_string<CharT> short_name() {return long_name();} static std::basic_string<CharT> long_name(); + static std::basic_string<CharT> symbol() {return short_name();} + static std::basic_string<CharT> prefix() {return long_name();} }; template <class Ratio, class CharT> @@ -67,6 +75,7 @@ ratio_string<Ratio, CharT>::long_name() << Ratio::den << CharT(']'); return os.str(); } + #ifdef BOOST_RATIO_HAS_STATIC_STRING namespace ratio_detail { template <class Ratio, class CharT> @@ -84,10 +93,18 @@ struct ratio_string_static typename ratio_static_string<Ratio, CharT>::long_name >::value); } + static std::basic_string<CharT> symbol() {return short_name();} + static std::basic_string<CharT> prefix() {return long_name();} }; } #endif // atto +template <> +struct ratio_string_is_localizable<atto> : true_type {}; + +template <> +struct ratio_string_id<atto> : integral_constant<int,-18> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<atto, CharT> : @@ -100,6 +117,8 @@ struct ratio_string<atto, char> { static std::string short_name() {return std::string(1, 'a');} static std::string long_name() {return std::string("atto");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -109,6 +128,8 @@ struct ratio_string<atto, char16_t> { static std::u16string short_name() {return std::u16string(1, u'a');} static std::u16string long_name() {return std::u16string(u"atto");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -116,6 +137,8 @@ struct ratio_string<atto, char32_t> { static std::u32string short_name() {return std::u32string(1, U'a');} static std::u32string long_name() {return std::u32string(U"atto");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -126,12 +149,20 @@ struct ratio_string<atto, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'a');} static std::wstring long_name() {return std::wstring(L"atto");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // femto +template <> +struct ratio_string_is_localizable<femto> : true_type {}; + +template <> +struct ratio_string_id<femto> : integral_constant<int,-15> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<femto, CharT> : @@ -139,11 +170,14 @@ struct ratio_string<femto, CharT> : {}; #else + template <> struct ratio_string<femto, char> { static std::string short_name() {return std::string(1, 'f');} static std::string long_name() {return std::string("femto");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -153,6 +187,8 @@ struct ratio_string<femto, char16_t> { static std::u16string short_name() {return std::u16string(1, u'f');} static std::u16string long_name() {return std::u16string(u"femto");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -160,6 +196,8 @@ struct ratio_string<femto, char32_t> { static std::u32string short_name() {return std::u32string(1, U'f');} static std::u32string long_name() {return std::u32string(U"femto");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -170,12 +208,20 @@ struct ratio_string<femto, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'f');} static std::wstring long_name() {return std::wstring(L"femto");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // pico +template <> +struct ratio_string_is_localizable<pico> : true_type {}; + +template <> +struct ratio_string_id<pico> : integral_constant<int,-12> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<pico, CharT> : @@ -188,6 +234,8 @@ struct ratio_string<pico, char> { static std::string short_name() {return std::string(1, 'p');} static std::string long_name() {return std::string("pico");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -197,6 +245,8 @@ struct ratio_string<pico, char16_t> { static std::u16string short_name() {return std::u16string(1, u'p');} static std::u16string long_name() {return std::u16string(u"pico");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -204,6 +254,8 @@ struct ratio_string<pico, char32_t> { static std::u32string short_name() {return std::u32string(1, U'p');} static std::u32string long_name() {return std::u32string(U"pico");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -214,12 +266,20 @@ struct ratio_string<pico, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'p');} static std::wstring long_name() {return std::wstring(L"pico");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // nano +template <> +struct ratio_string_is_localizable<nano> : true_type {}; + +template <> +struct ratio_string_id<nano> : integral_constant<int,-9> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<nano, CharT> : @@ -232,6 +292,8 @@ struct ratio_string<nano, char> { static std::string short_name() {return std::string(1, 'n');} static std::string long_name() {return std::string("nano");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -241,6 +303,8 @@ struct ratio_string<nano, char16_t> { static std::u16string short_name() {return std::u16string(1, u'n');} static std::u16string long_name() {return std::u16string(u"nano");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -248,6 +312,8 @@ struct ratio_string<nano, char32_t> { static std::u32string short_name() {return std::u32string(1, U'n');} static std::u32string long_name() {return std::u32string(U"nano");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -258,12 +324,20 @@ struct ratio_string<nano, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'n');} static std::wstring long_name() {return std::wstring(L"nano");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // micro +template <> +struct ratio_string_is_localizable<micro> : true_type {}; + +template <> +struct ratio_string_id<micro> : integral_constant<int,-6> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<micro, CharT> : @@ -276,6 +350,8 @@ struct ratio_string<micro, char> { static std::string short_name() {return std::string("\xC2\xB5");} static std::string long_name() {return std::string("micro");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -285,6 +361,8 @@ struct ratio_string<micro, char16_t> { static std::u16string short_name() {return std::u16string(1, u'\xB5');} static std::u16string long_name() {return std::u16string(u"micro");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -292,6 +370,8 @@ struct ratio_string<micro, char32_t> { static std::u32string short_name() {return std::u32string(1, U'\xB5');} static std::u32string long_name() {return std::u32string(U"micro");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -302,12 +382,20 @@ struct ratio_string<micro, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'\xB5');} static std::wstring long_name() {return std::wstring(L"micro");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // milli +template <> +struct ratio_string_is_localizable<milli> : true_type {}; + +template <> +struct ratio_string_id<milli> : integral_constant<int,-3> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<milli, CharT> : @@ -320,6 +408,8 @@ struct ratio_string<milli, char> { static std::string short_name() {return std::string(1, 'm');} static std::string long_name() {return std::string("milli");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -329,6 +419,8 @@ struct ratio_string<milli, char16_t> { static std::u16string short_name() {return std::u16string(1, u'm');} static std::u16string long_name() {return std::u16string(u"milli");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -336,6 +428,8 @@ struct ratio_string<milli, char32_t> { static std::u32string short_name() {return std::u32string(1, U'm');} static std::u32string long_name() {return std::u32string(U"milli");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -346,12 +440,20 @@ struct ratio_string<milli, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'm');} static std::wstring long_name() {return std::wstring(L"milli");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // centi +template <> +struct ratio_string_is_localizable<centi> : true_type {}; + +template <> +struct ratio_string_id<centi> : integral_constant<int,-2> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<centi, CharT> : @@ -364,6 +466,8 @@ struct ratio_string<centi, char> { static std::string short_name() {return std::string(1, 'c');} static std::string long_name() {return std::string("centi");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -373,6 +477,8 @@ struct ratio_string<centi, char16_t> { static std::u16string short_name() {return std::u16string(1, u'c');} static std::u16string long_name() {return std::u16string(u"centi");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -380,6 +486,8 @@ struct ratio_string<centi, char32_t> { static std::u32string short_name() {return std::u32string(1, U'c');} static std::u32string long_name() {return std::u32string(U"centi");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -390,11 +498,20 @@ struct ratio_string<centi, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'c');} static std::wstring long_name() {return std::wstring(L"centi");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // deci + +template <> +struct ratio_string_is_localizable<deci> : true_type {}; + +template <> +struct ratio_string_id<deci> : integral_constant<int,-1> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<deci, CharT> : @@ -408,6 +525,8 @@ struct ratio_string<deci, char> { static std::string short_name() {return std::string(1, 'd');} static std::string long_name() {return std::string("deci");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -417,6 +536,8 @@ struct ratio_string<deci, char16_t> { static std::u16string short_name() {return std::u16string(1, u'd');} static std::u16string long_name() {return std::u16string(u"deci");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -424,6 +545,8 @@ struct ratio_string<deci, char32_t> { static std::u32string short_name() {return std::u32string(1, U'd');} static std::u32string long_name() {return std::u32string(U"deci");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -434,12 +557,27 @@ struct ratio_string<deci, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'd');} static std::wstring long_name() {return std::wstring(L"deci");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif +// unit + +template <> +struct ratio_string_is_localizable<ratio<1> > : true_type {}; + +template <> +struct ratio_string_id<ratio<1> > : integral_constant<int,0> {}; // deca +template <> +struct ratio_string_is_localizable<deca> : true_type {}; + +template <> +struct ratio_string_id<deca> : integral_constant<int,1> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<deca, CharT> : @@ -452,6 +590,8 @@ struct ratio_string<deca, char> { static std::string short_name() {return std::string("da");} static std::string long_name() {return std::string("deca");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -461,6 +601,8 @@ struct ratio_string<deca, char16_t> { static std::u16string short_name() {return std::u16string(u"da");} static std::u16string long_name() {return std::u16string(u"deca");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -468,6 +610,8 @@ struct ratio_string<deca, char32_t> { static std::u32string short_name() {return std::u32string(U"da");} static std::u32string long_name() {return std::u32string(U"deca");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -478,12 +622,21 @@ struct ratio_string<deca, wchar_t> { static std::wstring short_name() {return std::wstring(L"da");} static std::wstring long_name() {return std::wstring(L"deca");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // hecto +template <> +struct ratio_string_is_localizable<hecto> : true_type {}; + +template <> +struct ratio_string_id<hecto> : integral_constant<int,2> {}; + + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<hecto, CharT> : @@ -496,6 +649,8 @@ struct ratio_string<hecto, char> { static std::string short_name() {return std::string(1, 'h');} static std::string long_name() {return std::string("hecto");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -505,6 +660,8 @@ struct ratio_string<hecto, char16_t> { static std::u16string short_name() {return std::u16string(1, u'h');} static std::u16string long_name() {return std::u16string(u"hecto");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -512,6 +669,8 @@ struct ratio_string<hecto, char32_t> { static std::u32string short_name() {return std::u32string(1, U'h');} static std::u32string long_name() {return std::u32string(U"hecto");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -522,12 +681,20 @@ struct ratio_string<hecto, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'h');} static std::wstring long_name() {return std::wstring(L"hecto");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // kilo +template <> +struct ratio_string_is_localizable<kilo> : true_type {}; + +template <> +struct ratio_string_id<kilo> : integral_constant<int,3> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<kilo, CharT> : @@ -540,6 +707,8 @@ struct ratio_string<kilo, char> { static std::string short_name() {return std::string(1, 'k');} static std::string long_name() {return std::string("kilo");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -549,6 +718,8 @@ struct ratio_string<kilo, char16_t> { static std::u16string short_name() {return std::u16string(1, u'k');} static std::u16string long_name() {return std::u16string(u"kilo");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -556,6 +727,8 @@ struct ratio_string<kilo, char32_t> { static std::u32string short_name() {return std::u32string(1, U'k');} static std::u32string long_name() {return std::u32string(U"kilo");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -566,12 +739,20 @@ struct ratio_string<kilo, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'k');} static std::wstring long_name() {return std::wstring(L"kilo");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // mega +template <> +struct ratio_string_is_localizable<mega> : true_type {}; + +template <> +struct ratio_string_id<mega> : integral_constant<int,6> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<mega, CharT> : @@ -585,6 +766,8 @@ struct ratio_string<mega, char> { static std::string short_name() {return std::string(1, 'M');} static std::string long_name() {return std::string("mega");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -594,6 +777,8 @@ struct ratio_string<mega, char16_t> { static std::u16string short_name() {return std::u16string(1, u'M');} static std::u16string long_name() {return std::u16string(u"mega");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -601,6 +786,8 @@ struct ratio_string<mega, char32_t> { static std::u32string short_name() {return std::u32string(1, U'M');} static std::u32string long_name() {return std::u32string(U"mega");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -611,11 +798,20 @@ struct ratio_string<mega, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'M');} static std::wstring long_name() {return std::wstring(L"mega");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // giga + +template <> +struct ratio_string_is_localizable<giga> : true_type {}; + +template <> +struct ratio_string_id<giga> : integral_constant<int,9> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<giga, CharT> : @@ -629,6 +825,8 @@ struct ratio_string<giga, char> { static std::string short_name() {return std::string(1, 'G');} static std::string long_name() {return std::string("giga");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -638,6 +836,8 @@ struct ratio_string<giga, char16_t> { static std::u16string short_name() {return std::u16string(1, u'G');} static std::u16string long_name() {return std::u16string(u"giga");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -645,6 +845,8 @@ struct ratio_string<giga, char32_t> { static std::u32string short_name() {return std::u32string(1, U'G');} static std::u32string long_name() {return std::u32string(U"giga");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -655,11 +857,20 @@ struct ratio_string<giga, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'G');} static std::wstring long_name() {return std::wstring(L"giga");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // tera + +template <> +struct ratio_string_is_localizable<tera> : true_type {}; + +template <> +struct ratio_string_id<tera> : integral_constant<int,12> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<tera, CharT> : @@ -672,6 +883,8 @@ struct ratio_string<tera, char> { static std::string short_name() {return std::string(1, 'T');} static std::string long_name() {return std::string("tera");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -681,6 +894,8 @@ struct ratio_string<tera, char16_t> { static std::u16string short_name() {return std::u16string(1, u'T');} static std::u16string long_name() {return std::u16string(u"tera");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -688,6 +903,8 @@ struct ratio_string<tera, char32_t> { static std::u32string short_name() {return std::u32string(1, U'T');} static std::u32string long_name() {return std::u32string(U"tera");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -698,11 +915,21 @@ struct ratio_string<tera, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'T');} static std::wstring long_name() {return std::wstring(L"tera");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // peta + +template <> +struct ratio_string_is_localizable<peta> : true_type {}; + +template <> +struct ratio_string_id<peta> : integral_constant<int,15> {}; + + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<peta, CharT> : @@ -715,6 +942,8 @@ struct ratio_string<peta, char> { static std::string short_name() {return std::string(1, 'P');} static std::string long_name() {return std::string("peta");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -724,6 +953,8 @@ struct ratio_string<peta, char16_t> { static std::u16string short_name() {return std::u16string(1, u'P');} static std::u16string long_name() {return std::u16string(u"peta");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -731,6 +962,8 @@ struct ratio_string<peta, char32_t> { static std::u32string short_name() {return std::u32string(1, U'P');} static std::u32string long_name() {return std::u32string(U"peta");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -741,11 +974,20 @@ struct ratio_string<peta, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'P');} static std::wstring long_name() {return std::wstring(L"peta");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif // exa + +template <> +struct ratio_string_is_localizable<exa> : true_type {}; + +template <> +struct ratio_string_id<exa> : integral_constant<int,18> {}; + #ifdef BOOST_RATIO_HAS_STATIC_STRING template <typename CharT> struct ratio_string<exa, CharT> : @@ -758,6 +1000,8 @@ struct ratio_string<exa, char> { static std::string short_name() {return std::string(1, 'E');} static std::string long_name() {return std::string("exa");} + static std::string symbol() {return short_name();} + static std::string prefix() {return long_name();} }; #if BOOST_RATIO_HAS_UNICODE_SUPPORT @@ -767,6 +1011,8 @@ struct ratio_string<exa, char16_t> { static std::u16string short_name() {return std::u16string(1, u'E');} static std::u16string long_name() {return std::u16string(u"exa");} + static std::u16string symbol() {return short_name();} + static std::u16string prefix() {return long_name();} }; template <> @@ -774,6 +1020,8 @@ struct ratio_string<exa, char32_t> { static std::u32string short_name() {return std::u32string(1, U'E');} static std::u32string long_name() {return std::u32string(U"exa");} + static std::u32string symbol() {return short_name();} + static std::u32string prefix() {return long_name();} }; #endif @@ -784,6 +1032,8 @@ struct ratio_string<exa, wchar_t> { static std::wstring short_name() {return std::wstring(1, L'E');} static std::wstring long_name() {return std::wstring(L"exa");} + static std::wstring symbol() {return short_name();} + static std::wstring prefix() {return long_name();} }; #endif #endif |