1343 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			1343 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								//  ratio_io
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  (C) Copyright Howard Hinnant
							 | 
						||
| 
								 | 
							
								//  (C) Copyright 2010 Vicente J. Botet Escriba
							 | 
						||
| 
								 | 
							
								//  Use, modification and distribution are subject to the Boost Software License,
							 | 
						||
| 
								 | 
							
								//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
							 | 
						||
| 
								 | 
							
								//  http://www.boost.org/LICENSE_1_0.txt).
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// This code was adapted by Vicente from Howard Hinnant's experimental work
							 | 
						||
| 
								 | 
							
								// on chrono i/o under lvm/libc++ to Boost
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_RATIO_DETAIL_RATIO_IO_HPP
							 | 
						||
| 
								 | 
							
								#define BOOST_RATIO_DETAIL_RATIO_IO_HPP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ratio_io synopsis
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <ratio>
							 | 
						||
| 
								 | 
							
								#include <string>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <class Ratio, class CharT>
							 | 
						||
| 
								 | 
							
								struct ratio_string
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static basic_string<CharT> short_name();
							 | 
						||
| 
								 | 
							
								    static basic_string<CharT> long_name();
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}  // boost
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/config.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/ratio/ratio.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/type_traits/integral_constant.hpp>
							 | 
						||
| 
								 | 
							
								#include <string>
							 | 
						||
| 
								 | 
							
								#include <sstream>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) || defined(BOOST_NO_CXX11_CHAR16_T) || defined(BOOST_NO_CXX11_CHAR32_T) || defined(BOOST_NO_CXX11_U16STRING) || defined(BOOST_NO_CXX11_U32STRING)
							 | 
						||
| 
								 | 
							
								#if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
							 | 
						||
| 
								 | 
							
								#undef BOOST_RATIO_HAS_UNICODE_SUPPORT
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#define BOOST_RATIO_HAS_UNICODE_SUPPORT 1
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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>
							 | 
						||
| 
								 | 
							
								std::basic_string<CharT>
							 | 
						||
| 
								 | 
							
								ratio_string<Ratio, CharT>::long_name()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    std::basic_ostringstream<CharT> os;
							 | 
						||
| 
								 | 
							
								    os << CharT('[') << Ratio::num << CharT('/')
							 | 
						||
| 
								 | 
							
								                        << Ratio::den << CharT(']');
							 | 
						||
| 
								 | 
							
								    return os.str();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_RATIO_HAS_STATIC_STRING
							 | 
						||
| 
								 | 
							
								namespace ratio_detail {
							 | 
						||
| 
								 | 
							
								template <class Ratio, class CharT>
							 | 
						||
| 
								 | 
							
								struct ratio_string_static
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::string short_name() {
							 | 
						||
| 
								 | 
							
								        return std::basic_string<CharT>(
							 | 
						||
| 
								 | 
							
								                static_string::c_str<
							 | 
						||
| 
								 | 
							
								                        typename ratio_static_string<Ratio, CharT>::short_name
							 | 
						||
| 
								 | 
							
								                    >::value);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    static std::string long_name()  {
							 | 
						||
| 
								 | 
							
								        return std::basic_string<CharT>(
							 | 
						||
| 
								 | 
							
								                static_string::c_str<
							 | 
						||
| 
								 | 
							
								                    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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<atto,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<pico,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<nano,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<micro,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<milli,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<centi,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<deci,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<deca,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<hecto,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<kilo,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<mega,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<giga,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<tera,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<peta,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<exa,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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 <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_RATIO_EXTENSIONS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_RATIO_HAS_STATIC_STRING
							 | 
						||
| 
								 | 
							
								template <typename CharT>
							 | 
						||
| 
								 | 
							
								struct ratio_string<kibi, CharT> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<kibi,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<kibi, char>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::string short_name() {return std::string("Ki");}
							 | 
						||
| 
								 | 
							
								    static std::string long_name()  {return std::string("kibi");}
							 | 
						||
| 
								 | 
							
								    static std::string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_RATIO_HAS_UNICODE_SUPPORT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<kibi, char16_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u16string short_name() {return std::u16string(u"Ki");}
							 | 
						||
| 
								 | 
							
								    static std::u16string long_name()  {return std::u16string(u"kibi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u16string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<kibi, char32_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u32string short_name() {return std::u32string(U"Ki");}
							 | 
						||
| 
								 | 
							
								    static std::u32string long_name()  {return std::u32string(U"kibi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u32string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<kibi, wchar_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::wstring short_name() {return std::wstring(L"Ki");}
							 | 
						||
| 
								 | 
							
								    static std::wstring long_name()  {return std::wstring(L"kibi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::wstring prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_RATIO_HAS_STATIC_STRING
							 | 
						||
| 
								 | 
							
								template <typename CharT>
							 | 
						||
| 
								 | 
							
								struct ratio_string<mebi, CharT> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<mebi,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<mebi, char>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::string short_name() {return std::string("Mi");}
							 | 
						||
| 
								 | 
							
								    static std::string long_name()  {return std::string("mebi");}
							 | 
						||
| 
								 | 
							
								    static std::string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_RATIO_HAS_UNICODE_SUPPORT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<mebi, char16_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u16string short_name() {return std::u16string(u"Mi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string long_name()  {return std::u16string(u"mebi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u16string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<mebi, char32_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u32string short_name() {return std::u32string(U"Mi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string long_name()  {return std::u32string(U"mebi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u32string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<mebi, wchar_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::wstring short_name() {return std::wstring(L"Mi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring long_name()  {return std::wstring(L"mebi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::wstring prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_RATIO_HAS_STATIC_STRING
							 | 
						||
| 
								 | 
							
								template <typename CharT>
							 | 
						||
| 
								 | 
							
								struct ratio_string<gibi, CharT> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<gibi,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<gibi, char>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::string short_name() {return std::string("Gi");}
							 | 
						||
| 
								 | 
							
								    static std::string long_name()  {return std::string("gibi");}
							 | 
						||
| 
								 | 
							
								    static std::string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_RATIO_HAS_UNICODE_SUPPORT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<gibi, char16_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u16string short_name() {return std::u16string(u"Gi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string long_name()  {return std::u16string(u"gibi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u16string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<gibi, char32_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u32string short_name() {return std::u32string(U"Gi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string long_name()  {return std::u32string(U"gibi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u32string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<gibi, wchar_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::wstring short_name() {return std::wstring(L"Gi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring long_name()  {return std::wstring(L"gibi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::wstring prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_RATIO_HAS_STATIC_STRING
							 | 
						||
| 
								 | 
							
								template <typename CharT>
							 | 
						||
| 
								 | 
							
								struct ratio_string<tebi, CharT> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<tebi,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<tebi, char>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::string short_name() {return std::string("Ti");}
							 | 
						||
| 
								 | 
							
								    static std::string long_name()  {return std::string("tebi");}
							 | 
						||
| 
								 | 
							
								    static std::string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_RATIO_HAS_UNICODE_SUPPORT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<tebi, char16_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u16string short_name() {return std::u16string(u"Ti");}
							 | 
						||
| 
								 | 
							
								    static std::u16string long_name()  {return std::u16string(u"tebi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u16string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<tebi, char32_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u32string short_name() {return std::u32string(U"Ti");}
							 | 
						||
| 
								 | 
							
								    static std::u32string long_name()  {return std::u32string(U"tebi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u32string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<tebi, wchar_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::wstring short_name() {return std::wstring(L"Ti");}
							 | 
						||
| 
								 | 
							
								    static std::wstring long_name()  {return std::wstring(L"tebi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::wstring prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_RATIO_HAS_STATIC_STRING
							 | 
						||
| 
								 | 
							
								template <typename CharT>
							 | 
						||
| 
								 | 
							
								struct ratio_string<pebi, CharT> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<pebi,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<pebi, char>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::string short_name() {return std::string("Pi");}
							 | 
						||
| 
								 | 
							
								    static std::string long_name()  {return std::string("pebi");}
							 | 
						||
| 
								 | 
							
								    static std::string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_RATIO_HAS_UNICODE_SUPPORT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<pebi, char16_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u16string short_name() {return std::u16string(u"Pi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string long_name()  {return std::u16string(u"pebi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u16string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<pebi, char32_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u32string short_name() {return std::u32string(U"Pi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string long_name()  {return std::u32string(U"pebi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u32string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<pebi, wchar_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::wstring short_name() {return std::wstring(L"Pi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring long_name()  {return std::wstring(L"pebi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::wstring prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_RATIO_HAS_STATIC_STRING
							 | 
						||
| 
								 | 
							
								template <typename CharT>
							 | 
						||
| 
								 | 
							
								struct ratio_string<exbi, CharT> :
							 | 
						||
| 
								 | 
							
								    ratio_detail::ratio_string_static<exbi,CharT>
							 | 
						||
| 
								 | 
							
								{};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<exbi, char>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::string short_name() {return std::string("Ei");}
							 | 
						||
| 
								 | 
							
								    static std::string long_name()  {return std::string("exbi");}
							 | 
						||
| 
								 | 
							
								    static std::string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_RATIO_HAS_UNICODE_SUPPORT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<exbi, char16_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u16string short_name() {return std::u16string(u"Ei");}
							 | 
						||
| 
								 | 
							
								    static std::u16string long_name()  {return std::u16string(u"exbi");}
							 | 
						||
| 
								 | 
							
								    static std::u16string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u16string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<exbi, char32_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::u32string short_name() {return std::u32string(U"Ei");}
							 | 
						||
| 
								 | 
							
								    static std::u32string long_name()  {return std::u32string(U"exbi");}
							 | 
						||
| 
								 | 
							
								    static std::u32string symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::u32string prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								template <>
							 | 
						||
| 
								 | 
							
								struct ratio_string<exbi, wchar_t>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    static std::wstring short_name() {return std::wstring(L"Ei");}
							 | 
						||
| 
								 | 
							
								    static std::wstring long_name()  {return std::wstring(L"exbi");}
							 | 
						||
| 
								 | 
							
								    static std::wstring symbol() {return short_name();}
							 | 
						||
| 
								 | 
							
								    static std::wstring prefix() {return long_name();}
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif  // BOOST_RATIO_RATIO_IO_HPP
							 |