Chris@16
|
1 // ratio_io
|
Chris@16
|
2 //
|
Chris@16
|
3 // (C) Copyright Howard Hinnant
|
Chris@16
|
4 // (C) Copyright 2010 Vicente J. Botet Escriba
|
Chris@16
|
5 // Use, modification and distribution are subject to the Boost Software License,
|
Chris@16
|
6 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
7 // http://www.boost.org/LICENSE_1_0.txt).
|
Chris@16
|
8 //
|
Chris@16
|
9 // This code was adapted by Vicente from Howard Hinnant's experimental work
|
Chris@16
|
10 // on chrono i/o under lvm/libc++ to Boost
|
Chris@16
|
11
|
Chris@16
|
12 #ifndef BOOST_RATIO_DETAIL_RATIO_IO_HPP
|
Chris@16
|
13 #define BOOST_RATIO_DETAIL_RATIO_IO_HPP
|
Chris@16
|
14
|
Chris@16
|
15 /*
|
Chris@16
|
16
|
Chris@16
|
17 ratio_io synopsis
|
Chris@16
|
18
|
Chris@16
|
19 #include <ratio>
|
Chris@16
|
20 #include <string>
|
Chris@16
|
21
|
Chris@16
|
22 namespace boost
|
Chris@16
|
23 {
|
Chris@16
|
24
|
Chris@16
|
25 template <class Ratio, class CharT>
|
Chris@16
|
26 struct ratio_string
|
Chris@16
|
27 {
|
Chris@16
|
28 static basic_string<CharT> short_name();
|
Chris@16
|
29 static basic_string<CharT> long_name();
|
Chris@16
|
30 };
|
Chris@16
|
31
|
Chris@16
|
32 } // boost
|
Chris@16
|
33
|
Chris@16
|
34 */
|
Chris@16
|
35
|
Chris@16
|
36 #include <boost/config.hpp>
|
Chris@16
|
37 #include <boost/ratio/ratio.hpp>
|
Chris@16
|
38 #include <boost/type_traits/integral_constant.hpp>
|
Chris@16
|
39 #include <string>
|
Chris@16
|
40 #include <sstream>
|
Chris@16
|
41
|
Chris@16
|
42 #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)
|
Chris@16
|
43 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
44 #undef BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
45 #endif
|
Chris@16
|
46 #else
|
Chris@16
|
47 #define BOOST_RATIO_HAS_UNICODE_SUPPORT 1
|
Chris@16
|
48 #endif
|
Chris@16
|
49
|
Chris@16
|
50 namespace boost {
|
Chris@16
|
51
|
Chris@16
|
52 //template <class Ratio>
|
Chris@16
|
53 //struct ratio_string_is_localizable : false_type {};
|
Chris@16
|
54 //template <class Ratio>
|
Chris@16
|
55 //struct ratio_string_id : integral_constant<int,0> {};
|
Chris@16
|
56
|
Chris@16
|
57 template <class Ratio, class CharT>
|
Chris@16
|
58 struct ratio_string
|
Chris@16
|
59 {
|
Chris@16
|
60 static std::basic_string<CharT> short_name() {return long_name();}
|
Chris@16
|
61 static std::basic_string<CharT> long_name();
|
Chris@16
|
62 static std::basic_string<CharT> symbol() {return short_name();}
|
Chris@16
|
63 static std::basic_string<CharT> prefix() {return long_name();}
|
Chris@16
|
64 };
|
Chris@16
|
65
|
Chris@16
|
66 template <class Ratio, class CharT>
|
Chris@16
|
67 std::basic_string<CharT>
|
Chris@16
|
68 ratio_string<Ratio, CharT>::long_name()
|
Chris@16
|
69 {
|
Chris@16
|
70 std::basic_ostringstream<CharT> os;
|
Chris@16
|
71 os << CharT('[') << Ratio::num << CharT('/')
|
Chris@16
|
72 << Ratio::den << CharT(']');
|
Chris@16
|
73 return os.str();
|
Chris@16
|
74 }
|
Chris@16
|
75
|
Chris@16
|
76 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
77 namespace ratio_detail {
|
Chris@16
|
78 template <class Ratio, class CharT>
|
Chris@16
|
79 struct ratio_string_static
|
Chris@16
|
80 {
|
Chris@16
|
81 static std::string short_name() {
|
Chris@16
|
82 return std::basic_string<CharT>(
|
Chris@16
|
83 static_string::c_str<
|
Chris@16
|
84 typename ratio_static_string<Ratio, CharT>::short_name
|
Chris@16
|
85 >::value);
|
Chris@16
|
86 }
|
Chris@16
|
87 static std::string long_name() {
|
Chris@16
|
88 return std::basic_string<CharT>(
|
Chris@16
|
89 static_string::c_str<
|
Chris@16
|
90 typename ratio_static_string<Ratio, CharT>::long_name
|
Chris@16
|
91 >::value);
|
Chris@16
|
92 }
|
Chris@16
|
93 static std::basic_string<CharT> symbol() {return short_name();}
|
Chris@16
|
94 static std::basic_string<CharT> prefix() {return long_name();}
|
Chris@16
|
95 };
|
Chris@16
|
96 }
|
Chris@16
|
97 #endif
|
Chris@16
|
98 // atto
|
Chris@16
|
99 //template <>
|
Chris@16
|
100 //struct ratio_string_is_localizable<atto> : true_type {};
|
Chris@16
|
101 //
|
Chris@16
|
102 //template <>
|
Chris@16
|
103 //struct ratio_string_id<atto> : integral_constant<int,-18> {};
|
Chris@16
|
104
|
Chris@16
|
105 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
106 template <typename CharT>
|
Chris@16
|
107 struct ratio_string<atto, CharT> :
|
Chris@16
|
108 ratio_detail::ratio_string_static<atto,CharT>
|
Chris@16
|
109 {};
|
Chris@16
|
110
|
Chris@16
|
111 #else
|
Chris@16
|
112 template <>
|
Chris@16
|
113 struct ratio_string<atto, char>
|
Chris@16
|
114 {
|
Chris@16
|
115 static std::string short_name() {return std::string(1, 'a');}
|
Chris@16
|
116 static std::string long_name() {return std::string("atto");}
|
Chris@16
|
117 static std::string symbol() {return short_name();}
|
Chris@16
|
118 static std::string prefix() {return long_name();}
|
Chris@16
|
119 };
|
Chris@16
|
120
|
Chris@16
|
121 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
122
|
Chris@16
|
123 template <>
|
Chris@16
|
124 struct ratio_string<atto, char16_t>
|
Chris@16
|
125 {
|
Chris@16
|
126 static std::u16string short_name() {return std::u16string(1, u'a');}
|
Chris@16
|
127 static std::u16string long_name() {return std::u16string(u"atto");}
|
Chris@16
|
128 static std::u16string symbol() {return short_name();}
|
Chris@16
|
129 static std::u16string prefix() {return long_name();}
|
Chris@16
|
130 };
|
Chris@16
|
131
|
Chris@16
|
132 template <>
|
Chris@16
|
133 struct ratio_string<atto, char32_t>
|
Chris@16
|
134 {
|
Chris@16
|
135 static std::u32string short_name() {return std::u32string(1, U'a');}
|
Chris@16
|
136 static std::u32string long_name() {return std::u32string(U"atto");}
|
Chris@16
|
137 static std::u32string symbol() {return short_name();}
|
Chris@16
|
138 static std::u32string prefix() {return long_name();}
|
Chris@16
|
139 };
|
Chris@16
|
140
|
Chris@16
|
141 #endif
|
Chris@16
|
142
|
Chris@16
|
143 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
144 template <>
|
Chris@16
|
145 struct ratio_string<atto, wchar_t>
|
Chris@16
|
146 {
|
Chris@16
|
147 static std::wstring short_name() {return std::wstring(1, L'a');}
|
Chris@16
|
148 static std::wstring long_name() {return std::wstring(L"atto");}
|
Chris@16
|
149 static std::wstring symbol() {return short_name();}
|
Chris@16
|
150 static std::wstring prefix() {return long_name();}
|
Chris@16
|
151 };
|
Chris@16
|
152 #endif
|
Chris@16
|
153 #endif
|
Chris@16
|
154
|
Chris@16
|
155 // femto
|
Chris@16
|
156
|
Chris@16
|
157 //template <>
|
Chris@16
|
158 //struct ratio_string_is_localizable<femto> : true_type {};
|
Chris@16
|
159 //
|
Chris@16
|
160 //template <>
|
Chris@16
|
161 //struct ratio_string_id<femto> : integral_constant<int,-15> {};
|
Chris@16
|
162
|
Chris@16
|
163 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
164 template <typename CharT>
|
Chris@16
|
165 struct ratio_string<femto, CharT> :
|
Chris@16
|
166 ratio_detail::ratio_string_static<femto,CharT>
|
Chris@16
|
167 {};
|
Chris@16
|
168
|
Chris@16
|
169 #else
|
Chris@16
|
170
|
Chris@16
|
171 template <>
|
Chris@16
|
172 struct ratio_string<femto, char>
|
Chris@16
|
173 {
|
Chris@16
|
174 static std::string short_name() {return std::string(1, 'f');}
|
Chris@16
|
175 static std::string long_name() {return std::string("femto");}
|
Chris@16
|
176 static std::string symbol() {return short_name();}
|
Chris@16
|
177 static std::string prefix() {return long_name();}
|
Chris@16
|
178 };
|
Chris@16
|
179
|
Chris@16
|
180 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
181
|
Chris@16
|
182 template <>
|
Chris@16
|
183 struct ratio_string<femto, char16_t>
|
Chris@16
|
184 {
|
Chris@16
|
185 static std::u16string short_name() {return std::u16string(1, u'f');}
|
Chris@16
|
186 static std::u16string long_name() {return std::u16string(u"femto");}
|
Chris@16
|
187 static std::u16string symbol() {return short_name();}
|
Chris@16
|
188 static std::u16string prefix() {return long_name();}
|
Chris@16
|
189 };
|
Chris@16
|
190
|
Chris@16
|
191 template <>
|
Chris@16
|
192 struct ratio_string<femto, char32_t>
|
Chris@16
|
193 {
|
Chris@16
|
194 static std::u32string short_name() {return std::u32string(1, U'f');}
|
Chris@16
|
195 static std::u32string long_name() {return std::u32string(U"femto");}
|
Chris@16
|
196 static std::u32string symbol() {return short_name();}
|
Chris@16
|
197 static std::u32string prefix() {return long_name();}
|
Chris@16
|
198 };
|
Chris@16
|
199
|
Chris@16
|
200 #endif
|
Chris@16
|
201
|
Chris@16
|
202 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
203 template <>
|
Chris@16
|
204 struct ratio_string<femto, wchar_t>
|
Chris@16
|
205 {
|
Chris@16
|
206 static std::wstring short_name() {return std::wstring(1, L'f');}
|
Chris@16
|
207 static std::wstring long_name() {return std::wstring(L"femto");}
|
Chris@16
|
208 static std::wstring symbol() {return short_name();}
|
Chris@16
|
209 static std::wstring prefix() {return long_name();}
|
Chris@16
|
210 };
|
Chris@16
|
211 #endif
|
Chris@16
|
212 #endif
|
Chris@16
|
213
|
Chris@16
|
214 // pico
|
Chris@16
|
215
|
Chris@16
|
216 //template <>
|
Chris@16
|
217 //struct ratio_string_is_localizable<pico> : true_type {};
|
Chris@16
|
218 //
|
Chris@16
|
219 //template <>
|
Chris@16
|
220 //struct ratio_string_id<pico> : integral_constant<int,-12> {};
|
Chris@16
|
221
|
Chris@16
|
222 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
223 template <typename CharT>
|
Chris@16
|
224 struct ratio_string<pico, CharT> :
|
Chris@16
|
225 ratio_detail::ratio_string_static<pico,CharT>
|
Chris@16
|
226 {};
|
Chris@16
|
227
|
Chris@16
|
228 #else
|
Chris@16
|
229 template <>
|
Chris@16
|
230 struct ratio_string<pico, char>
|
Chris@16
|
231 {
|
Chris@16
|
232 static std::string short_name() {return std::string(1, 'p');}
|
Chris@16
|
233 static std::string long_name() {return std::string("pico");}
|
Chris@16
|
234 static std::string symbol() {return short_name();}
|
Chris@16
|
235 static std::string prefix() {return long_name();}
|
Chris@16
|
236 };
|
Chris@16
|
237
|
Chris@16
|
238 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
239
|
Chris@16
|
240 template <>
|
Chris@16
|
241 struct ratio_string<pico, char16_t>
|
Chris@16
|
242 {
|
Chris@16
|
243 static std::u16string short_name() {return std::u16string(1, u'p');}
|
Chris@16
|
244 static std::u16string long_name() {return std::u16string(u"pico");}
|
Chris@16
|
245 static std::u16string symbol() {return short_name();}
|
Chris@16
|
246 static std::u16string prefix() {return long_name();}
|
Chris@16
|
247 };
|
Chris@16
|
248
|
Chris@16
|
249 template <>
|
Chris@16
|
250 struct ratio_string<pico, char32_t>
|
Chris@16
|
251 {
|
Chris@16
|
252 static std::u32string short_name() {return std::u32string(1, U'p');}
|
Chris@16
|
253 static std::u32string long_name() {return std::u32string(U"pico");}
|
Chris@16
|
254 static std::u32string symbol() {return short_name();}
|
Chris@16
|
255 static std::u32string prefix() {return long_name();}
|
Chris@16
|
256 };
|
Chris@16
|
257
|
Chris@16
|
258 #endif
|
Chris@16
|
259
|
Chris@16
|
260 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
261 template <>
|
Chris@16
|
262 struct ratio_string<pico, wchar_t>
|
Chris@16
|
263 {
|
Chris@16
|
264 static std::wstring short_name() {return std::wstring(1, L'p');}
|
Chris@16
|
265 static std::wstring long_name() {return std::wstring(L"pico");}
|
Chris@16
|
266 static std::wstring symbol() {return short_name();}
|
Chris@16
|
267 static std::wstring prefix() {return long_name();}
|
Chris@16
|
268 };
|
Chris@16
|
269 #endif
|
Chris@16
|
270 #endif
|
Chris@16
|
271
|
Chris@16
|
272 // nano
|
Chris@16
|
273
|
Chris@16
|
274 //template <>
|
Chris@16
|
275 //struct ratio_string_is_localizable<nano> : true_type {};
|
Chris@16
|
276 //
|
Chris@16
|
277 //template <>
|
Chris@16
|
278 //struct ratio_string_id<nano> : integral_constant<int,-9> {};
|
Chris@16
|
279
|
Chris@16
|
280 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
281 template <typename CharT>
|
Chris@16
|
282 struct ratio_string<nano, CharT> :
|
Chris@16
|
283 ratio_detail::ratio_string_static<nano,CharT>
|
Chris@16
|
284 {};
|
Chris@16
|
285
|
Chris@16
|
286 #else
|
Chris@16
|
287 template <>
|
Chris@16
|
288 struct ratio_string<nano, char>
|
Chris@16
|
289 {
|
Chris@16
|
290 static std::string short_name() {return std::string(1, 'n');}
|
Chris@16
|
291 static std::string long_name() {return std::string("nano");}
|
Chris@16
|
292 static std::string symbol() {return short_name();}
|
Chris@16
|
293 static std::string prefix() {return long_name();}
|
Chris@16
|
294 };
|
Chris@16
|
295
|
Chris@16
|
296 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
297
|
Chris@16
|
298 template <>
|
Chris@16
|
299 struct ratio_string<nano, char16_t>
|
Chris@16
|
300 {
|
Chris@16
|
301 static std::u16string short_name() {return std::u16string(1, u'n');}
|
Chris@16
|
302 static std::u16string long_name() {return std::u16string(u"nano");}
|
Chris@16
|
303 static std::u16string symbol() {return short_name();}
|
Chris@16
|
304 static std::u16string prefix() {return long_name();}
|
Chris@16
|
305 };
|
Chris@16
|
306
|
Chris@16
|
307 template <>
|
Chris@16
|
308 struct ratio_string<nano, char32_t>
|
Chris@16
|
309 {
|
Chris@16
|
310 static std::u32string short_name() {return std::u32string(1, U'n');}
|
Chris@16
|
311 static std::u32string long_name() {return std::u32string(U"nano");}
|
Chris@16
|
312 static std::u32string symbol() {return short_name();}
|
Chris@16
|
313 static std::u32string prefix() {return long_name();}
|
Chris@16
|
314 };
|
Chris@16
|
315
|
Chris@16
|
316 #endif
|
Chris@16
|
317
|
Chris@16
|
318 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
319 template <>
|
Chris@16
|
320 struct ratio_string<nano, wchar_t>
|
Chris@16
|
321 {
|
Chris@16
|
322 static std::wstring short_name() {return std::wstring(1, L'n');}
|
Chris@16
|
323 static std::wstring long_name() {return std::wstring(L"nano");}
|
Chris@16
|
324 static std::wstring symbol() {return short_name();}
|
Chris@16
|
325 static std::wstring prefix() {return long_name();}
|
Chris@16
|
326 };
|
Chris@16
|
327 #endif
|
Chris@16
|
328 #endif
|
Chris@16
|
329
|
Chris@16
|
330 // micro
|
Chris@16
|
331
|
Chris@16
|
332 //template <>
|
Chris@16
|
333 //struct ratio_string_is_localizable<micro> : true_type {};
|
Chris@16
|
334 //
|
Chris@16
|
335 //template <>
|
Chris@16
|
336 //struct ratio_string_id<micro> : integral_constant<int,-6> {};
|
Chris@16
|
337
|
Chris@16
|
338 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
339 template <typename CharT>
|
Chris@16
|
340 struct ratio_string<micro, CharT> :
|
Chris@16
|
341 ratio_detail::ratio_string_static<micro,CharT>
|
Chris@16
|
342 {};
|
Chris@16
|
343
|
Chris@16
|
344 #else
|
Chris@16
|
345 template <>
|
Chris@16
|
346 struct ratio_string<micro, char>
|
Chris@16
|
347 {
|
Chris@16
|
348 static std::string short_name() {return std::string("\xC2\xB5");}
|
Chris@16
|
349 static std::string long_name() {return std::string("micro");}
|
Chris@16
|
350 static std::string symbol() {return short_name();}
|
Chris@16
|
351 static std::string prefix() {return long_name();}
|
Chris@16
|
352 };
|
Chris@16
|
353
|
Chris@16
|
354 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
355
|
Chris@16
|
356 template <>
|
Chris@16
|
357 struct ratio_string<micro, char16_t>
|
Chris@16
|
358 {
|
Chris@16
|
359 static std::u16string short_name() {return std::u16string(1, u'\xB5');}
|
Chris@16
|
360 static std::u16string long_name() {return std::u16string(u"micro");}
|
Chris@16
|
361 static std::u16string symbol() {return short_name();}
|
Chris@16
|
362 static std::u16string prefix() {return long_name();}
|
Chris@16
|
363 };
|
Chris@16
|
364
|
Chris@16
|
365 template <>
|
Chris@16
|
366 struct ratio_string<micro, char32_t>
|
Chris@16
|
367 {
|
Chris@16
|
368 static std::u32string short_name() {return std::u32string(1, U'\xB5');}
|
Chris@16
|
369 static std::u32string long_name() {return std::u32string(U"micro");}
|
Chris@16
|
370 static std::u32string symbol() {return short_name();}
|
Chris@16
|
371 static std::u32string prefix() {return long_name();}
|
Chris@16
|
372 };
|
Chris@16
|
373
|
Chris@16
|
374 #endif
|
Chris@16
|
375
|
Chris@16
|
376 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
377 template <>
|
Chris@16
|
378 struct ratio_string<micro, wchar_t>
|
Chris@16
|
379 {
|
Chris@16
|
380 static std::wstring short_name() {return std::wstring(1, L'\xB5');}
|
Chris@16
|
381 static std::wstring long_name() {return std::wstring(L"micro");}
|
Chris@16
|
382 static std::wstring symbol() {return short_name();}
|
Chris@16
|
383 static std::wstring prefix() {return long_name();}
|
Chris@16
|
384 };
|
Chris@16
|
385 #endif
|
Chris@16
|
386 #endif
|
Chris@16
|
387
|
Chris@16
|
388 // milli
|
Chris@16
|
389
|
Chris@16
|
390 //template <>
|
Chris@16
|
391 //struct ratio_string_is_localizable<milli> : true_type {};
|
Chris@16
|
392 //
|
Chris@16
|
393 //template <>
|
Chris@16
|
394 //struct ratio_string_id<milli> : integral_constant<int,-3> {};
|
Chris@16
|
395
|
Chris@16
|
396 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
397 template <typename CharT>
|
Chris@16
|
398 struct ratio_string<milli, CharT> :
|
Chris@16
|
399 ratio_detail::ratio_string_static<milli,CharT>
|
Chris@16
|
400 {};
|
Chris@16
|
401
|
Chris@16
|
402 #else
|
Chris@16
|
403 template <>
|
Chris@16
|
404 struct ratio_string<milli, char>
|
Chris@16
|
405 {
|
Chris@16
|
406 static std::string short_name() {return std::string(1, 'm');}
|
Chris@16
|
407 static std::string long_name() {return std::string("milli");}
|
Chris@16
|
408 static std::string symbol() {return short_name();}
|
Chris@16
|
409 static std::string prefix() {return long_name();}
|
Chris@16
|
410 };
|
Chris@16
|
411
|
Chris@16
|
412 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
413
|
Chris@16
|
414 template <>
|
Chris@16
|
415 struct ratio_string<milli, char16_t>
|
Chris@16
|
416 {
|
Chris@16
|
417 static std::u16string short_name() {return std::u16string(1, u'm');}
|
Chris@16
|
418 static std::u16string long_name() {return std::u16string(u"milli");}
|
Chris@16
|
419 static std::u16string symbol() {return short_name();}
|
Chris@16
|
420 static std::u16string prefix() {return long_name();}
|
Chris@16
|
421 };
|
Chris@16
|
422
|
Chris@16
|
423 template <>
|
Chris@16
|
424 struct ratio_string<milli, char32_t>
|
Chris@16
|
425 {
|
Chris@16
|
426 static std::u32string short_name() {return std::u32string(1, U'm');}
|
Chris@16
|
427 static std::u32string long_name() {return std::u32string(U"milli");}
|
Chris@16
|
428 static std::u32string symbol() {return short_name();}
|
Chris@16
|
429 static std::u32string prefix() {return long_name();}
|
Chris@16
|
430 };
|
Chris@16
|
431
|
Chris@16
|
432 #endif
|
Chris@16
|
433
|
Chris@16
|
434 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
435 template <>
|
Chris@16
|
436 struct ratio_string<milli, wchar_t>
|
Chris@16
|
437 {
|
Chris@16
|
438 static std::wstring short_name() {return std::wstring(1, L'm');}
|
Chris@16
|
439 static std::wstring long_name() {return std::wstring(L"milli");}
|
Chris@16
|
440 static std::wstring symbol() {return short_name();}
|
Chris@16
|
441 static std::wstring prefix() {return long_name();}
|
Chris@16
|
442 };
|
Chris@16
|
443 #endif
|
Chris@16
|
444 #endif
|
Chris@16
|
445
|
Chris@16
|
446 // centi
|
Chris@16
|
447
|
Chris@16
|
448 //template <>
|
Chris@16
|
449 //struct ratio_string_is_localizable<centi> : true_type {};
|
Chris@16
|
450 //
|
Chris@16
|
451 //template <>
|
Chris@16
|
452 //struct ratio_string_id<centi> : integral_constant<int,-2> {};
|
Chris@16
|
453
|
Chris@16
|
454 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
455 template <typename CharT>
|
Chris@16
|
456 struct ratio_string<centi, CharT> :
|
Chris@16
|
457 ratio_detail::ratio_string_static<centi,CharT>
|
Chris@16
|
458 {};
|
Chris@16
|
459
|
Chris@16
|
460 #else
|
Chris@16
|
461 template <>
|
Chris@16
|
462 struct ratio_string<centi, char>
|
Chris@16
|
463 {
|
Chris@16
|
464 static std::string short_name() {return std::string(1, 'c');}
|
Chris@16
|
465 static std::string long_name() {return std::string("centi");}
|
Chris@16
|
466 static std::string symbol() {return short_name();}
|
Chris@16
|
467 static std::string prefix() {return long_name();}
|
Chris@16
|
468 };
|
Chris@16
|
469
|
Chris@16
|
470 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
471
|
Chris@16
|
472 template <>
|
Chris@16
|
473 struct ratio_string<centi, char16_t>
|
Chris@16
|
474 {
|
Chris@16
|
475 static std::u16string short_name() {return std::u16string(1, u'c');}
|
Chris@16
|
476 static std::u16string long_name() {return std::u16string(u"centi");}
|
Chris@16
|
477 static std::u16string symbol() {return short_name();}
|
Chris@16
|
478 static std::u16string prefix() {return long_name();}
|
Chris@16
|
479 };
|
Chris@16
|
480
|
Chris@16
|
481 template <>
|
Chris@16
|
482 struct ratio_string<centi, char32_t>
|
Chris@16
|
483 {
|
Chris@16
|
484 static std::u32string short_name() {return std::u32string(1, U'c');}
|
Chris@16
|
485 static std::u32string long_name() {return std::u32string(U"centi");}
|
Chris@16
|
486 static std::u32string symbol() {return short_name();}
|
Chris@16
|
487 static std::u32string prefix() {return long_name();}
|
Chris@16
|
488 };
|
Chris@16
|
489
|
Chris@16
|
490 #endif
|
Chris@16
|
491
|
Chris@16
|
492 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
493 template <>
|
Chris@16
|
494 struct ratio_string<centi, wchar_t>
|
Chris@16
|
495 {
|
Chris@16
|
496 static std::wstring short_name() {return std::wstring(1, L'c');}
|
Chris@16
|
497 static std::wstring long_name() {return std::wstring(L"centi");}
|
Chris@16
|
498 static std::wstring symbol() {return short_name();}
|
Chris@16
|
499 static std::wstring prefix() {return long_name();}
|
Chris@16
|
500 };
|
Chris@16
|
501 #endif
|
Chris@16
|
502 #endif
|
Chris@16
|
503
|
Chris@16
|
504 // deci
|
Chris@16
|
505
|
Chris@16
|
506 //template <>
|
Chris@16
|
507 //struct ratio_string_is_localizable<deci> : true_type {};
|
Chris@16
|
508 //
|
Chris@16
|
509 //template <>
|
Chris@16
|
510 //struct ratio_string_id<deci> : integral_constant<int,-1> {};
|
Chris@16
|
511
|
Chris@16
|
512 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
513 template <typename CharT>
|
Chris@16
|
514 struct ratio_string<deci, CharT> :
|
Chris@16
|
515 ratio_detail::ratio_string_static<deci,CharT>
|
Chris@16
|
516 {};
|
Chris@16
|
517
|
Chris@16
|
518 #else
|
Chris@16
|
519
|
Chris@16
|
520 template <>
|
Chris@16
|
521 struct ratio_string<deci, char>
|
Chris@16
|
522 {
|
Chris@16
|
523 static std::string short_name() {return std::string(1, 'd');}
|
Chris@16
|
524 static std::string long_name() {return std::string("deci");}
|
Chris@16
|
525 static std::string symbol() {return short_name();}
|
Chris@16
|
526 static std::string prefix() {return long_name();}
|
Chris@16
|
527 };
|
Chris@16
|
528
|
Chris@16
|
529 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
530
|
Chris@16
|
531 template <>
|
Chris@16
|
532 struct ratio_string<deci, char16_t>
|
Chris@16
|
533 {
|
Chris@16
|
534 static std::u16string short_name() {return std::u16string(1, u'd');}
|
Chris@16
|
535 static std::u16string long_name() {return std::u16string(u"deci");}
|
Chris@16
|
536 static std::u16string symbol() {return short_name();}
|
Chris@16
|
537 static std::u16string prefix() {return long_name();}
|
Chris@16
|
538 };
|
Chris@16
|
539
|
Chris@16
|
540 template <>
|
Chris@16
|
541 struct ratio_string<deci, char32_t>
|
Chris@16
|
542 {
|
Chris@16
|
543 static std::u32string short_name() {return std::u32string(1, U'd');}
|
Chris@16
|
544 static std::u32string long_name() {return std::u32string(U"deci");}
|
Chris@16
|
545 static std::u32string symbol() {return short_name();}
|
Chris@16
|
546 static std::u32string prefix() {return long_name();}
|
Chris@16
|
547 };
|
Chris@16
|
548
|
Chris@16
|
549 #endif
|
Chris@16
|
550
|
Chris@16
|
551 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
552 template <>
|
Chris@16
|
553 struct ratio_string<deci, wchar_t>
|
Chris@16
|
554 {
|
Chris@16
|
555 static std::wstring short_name() {return std::wstring(1, L'd');}
|
Chris@16
|
556 static std::wstring long_name() {return std::wstring(L"deci");}
|
Chris@16
|
557 static std::wstring symbol() {return short_name();}
|
Chris@16
|
558 static std::wstring prefix() {return long_name();}
|
Chris@16
|
559 };
|
Chris@16
|
560 #endif
|
Chris@16
|
561 #endif
|
Chris@16
|
562
|
Chris@16
|
563 // unit
|
Chris@16
|
564
|
Chris@16
|
565 //template <>
|
Chris@16
|
566 //struct ratio_string_is_localizable<ratio<1> > : true_type {};
|
Chris@16
|
567 //
|
Chris@16
|
568 //template <>
|
Chris@16
|
569 //struct ratio_string_id<ratio<1> > : integral_constant<int,0> {};
|
Chris@16
|
570 // deca
|
Chris@16
|
571
|
Chris@16
|
572 //template <>
|
Chris@16
|
573 //struct ratio_string_is_localizable<deca> : true_type {};
|
Chris@16
|
574 //
|
Chris@16
|
575 //template <>
|
Chris@16
|
576 //struct ratio_string_id<deca> : integral_constant<int,1> {};
|
Chris@16
|
577
|
Chris@16
|
578 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
579 template <typename CharT>
|
Chris@16
|
580 struct ratio_string<deca, CharT> :
|
Chris@16
|
581 ratio_detail::ratio_string_static<deca,CharT>
|
Chris@16
|
582 {};
|
Chris@16
|
583
|
Chris@16
|
584 #else
|
Chris@16
|
585 template <>
|
Chris@16
|
586 struct ratio_string<deca, char>
|
Chris@16
|
587 {
|
Chris@16
|
588 static std::string short_name() {return std::string("da");}
|
Chris@16
|
589 static std::string long_name() {return std::string("deca");}
|
Chris@16
|
590 static std::string symbol() {return short_name();}
|
Chris@16
|
591 static std::string prefix() {return long_name();}
|
Chris@16
|
592 };
|
Chris@16
|
593
|
Chris@16
|
594 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
595
|
Chris@16
|
596 template <>
|
Chris@16
|
597 struct ratio_string<deca, char16_t>
|
Chris@16
|
598 {
|
Chris@16
|
599 static std::u16string short_name() {return std::u16string(u"da");}
|
Chris@16
|
600 static std::u16string long_name() {return std::u16string(u"deca");}
|
Chris@16
|
601 static std::u16string symbol() {return short_name();}
|
Chris@16
|
602 static std::u16string prefix() {return long_name();}
|
Chris@16
|
603 };
|
Chris@16
|
604
|
Chris@16
|
605 template <>
|
Chris@16
|
606 struct ratio_string<deca, char32_t>
|
Chris@16
|
607 {
|
Chris@16
|
608 static std::u32string short_name() {return std::u32string(U"da");}
|
Chris@16
|
609 static std::u32string long_name() {return std::u32string(U"deca");}
|
Chris@16
|
610 static std::u32string symbol() {return short_name();}
|
Chris@16
|
611 static std::u32string prefix() {return long_name();}
|
Chris@16
|
612 };
|
Chris@16
|
613
|
Chris@16
|
614 #endif
|
Chris@16
|
615
|
Chris@16
|
616 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
617 template <>
|
Chris@16
|
618 struct ratio_string<deca, wchar_t>
|
Chris@16
|
619 {
|
Chris@16
|
620 static std::wstring short_name() {return std::wstring(L"da");}
|
Chris@16
|
621 static std::wstring long_name() {return std::wstring(L"deca");}
|
Chris@16
|
622 static std::wstring symbol() {return short_name();}
|
Chris@16
|
623 static std::wstring prefix() {return long_name();}
|
Chris@16
|
624 };
|
Chris@16
|
625 #endif
|
Chris@16
|
626 #endif
|
Chris@16
|
627
|
Chris@16
|
628 // hecto
|
Chris@16
|
629
|
Chris@16
|
630 //template <>
|
Chris@16
|
631 //struct ratio_string_is_localizable<hecto> : true_type {};
|
Chris@16
|
632 //
|
Chris@16
|
633 //template <>
|
Chris@16
|
634 //struct ratio_string_id<hecto> : integral_constant<int,2> {};
|
Chris@16
|
635
|
Chris@16
|
636
|
Chris@16
|
637 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
638 template <typename CharT>
|
Chris@16
|
639 struct ratio_string<hecto, CharT> :
|
Chris@16
|
640 ratio_detail::ratio_string_static<hecto,CharT>
|
Chris@16
|
641 {};
|
Chris@16
|
642
|
Chris@16
|
643 #else
|
Chris@16
|
644 template <>
|
Chris@16
|
645 struct ratio_string<hecto, char>
|
Chris@16
|
646 {
|
Chris@16
|
647 static std::string short_name() {return std::string(1, 'h');}
|
Chris@16
|
648 static std::string long_name() {return std::string("hecto");}
|
Chris@16
|
649 static std::string symbol() {return short_name();}
|
Chris@16
|
650 static std::string prefix() {return long_name();}
|
Chris@16
|
651 };
|
Chris@16
|
652
|
Chris@16
|
653 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
654
|
Chris@16
|
655 template <>
|
Chris@16
|
656 struct ratio_string<hecto, char16_t>
|
Chris@16
|
657 {
|
Chris@16
|
658 static std::u16string short_name() {return std::u16string(1, u'h');}
|
Chris@16
|
659 static std::u16string long_name() {return std::u16string(u"hecto");}
|
Chris@16
|
660 static std::u16string symbol() {return short_name();}
|
Chris@16
|
661 static std::u16string prefix() {return long_name();}
|
Chris@16
|
662 };
|
Chris@16
|
663
|
Chris@16
|
664 template <>
|
Chris@16
|
665 struct ratio_string<hecto, char32_t>
|
Chris@16
|
666 {
|
Chris@16
|
667 static std::u32string short_name() {return std::u32string(1, U'h');}
|
Chris@16
|
668 static std::u32string long_name() {return std::u32string(U"hecto");}
|
Chris@16
|
669 static std::u32string symbol() {return short_name();}
|
Chris@16
|
670 static std::u32string prefix() {return long_name();}
|
Chris@16
|
671 };
|
Chris@16
|
672
|
Chris@16
|
673 #endif
|
Chris@16
|
674
|
Chris@16
|
675 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
676 template <>
|
Chris@16
|
677 struct ratio_string<hecto, wchar_t>
|
Chris@16
|
678 {
|
Chris@16
|
679 static std::wstring short_name() {return std::wstring(1, L'h');}
|
Chris@16
|
680 static std::wstring long_name() {return std::wstring(L"hecto");}
|
Chris@16
|
681 static std::wstring symbol() {return short_name();}
|
Chris@16
|
682 static std::wstring prefix() {return long_name();}
|
Chris@16
|
683 };
|
Chris@16
|
684 #endif
|
Chris@16
|
685 #endif
|
Chris@16
|
686
|
Chris@16
|
687 // kilo
|
Chris@16
|
688
|
Chris@16
|
689 //template <>
|
Chris@16
|
690 //struct ratio_string_is_localizable<kilo> : true_type {};
|
Chris@16
|
691 //
|
Chris@16
|
692 //template <>
|
Chris@16
|
693 //struct ratio_string_id<kilo> : integral_constant<int,3> {};
|
Chris@16
|
694
|
Chris@16
|
695 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
696 template <typename CharT>
|
Chris@16
|
697 struct ratio_string<kilo, CharT> :
|
Chris@16
|
698 ratio_detail::ratio_string_static<kilo,CharT>
|
Chris@16
|
699 {};
|
Chris@16
|
700
|
Chris@16
|
701 #else
|
Chris@16
|
702 template <>
|
Chris@16
|
703 struct ratio_string<kilo, char>
|
Chris@16
|
704 {
|
Chris@16
|
705 static std::string short_name() {return std::string(1, 'k');}
|
Chris@16
|
706 static std::string long_name() {return std::string("kilo");}
|
Chris@16
|
707 static std::string symbol() {return short_name();}
|
Chris@16
|
708 static std::string prefix() {return long_name();}
|
Chris@16
|
709 };
|
Chris@16
|
710
|
Chris@16
|
711 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
712
|
Chris@16
|
713 template <>
|
Chris@16
|
714 struct ratio_string<kilo, char16_t>
|
Chris@16
|
715 {
|
Chris@16
|
716 static std::u16string short_name() {return std::u16string(1, u'k');}
|
Chris@16
|
717 static std::u16string long_name() {return std::u16string(u"kilo");}
|
Chris@16
|
718 static std::u16string symbol() {return short_name();}
|
Chris@16
|
719 static std::u16string prefix() {return long_name();}
|
Chris@16
|
720 };
|
Chris@16
|
721
|
Chris@16
|
722 template <>
|
Chris@16
|
723 struct ratio_string<kilo, char32_t>
|
Chris@16
|
724 {
|
Chris@16
|
725 static std::u32string short_name() {return std::u32string(1, U'k');}
|
Chris@16
|
726 static std::u32string long_name() {return std::u32string(U"kilo");}
|
Chris@16
|
727 static std::u32string symbol() {return short_name();}
|
Chris@16
|
728 static std::u32string prefix() {return long_name();}
|
Chris@16
|
729 };
|
Chris@16
|
730
|
Chris@16
|
731 #endif
|
Chris@16
|
732
|
Chris@16
|
733 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
734 template <>
|
Chris@16
|
735 struct ratio_string<kilo, wchar_t>
|
Chris@16
|
736 {
|
Chris@16
|
737 static std::wstring short_name() {return std::wstring(1, L'k');}
|
Chris@16
|
738 static std::wstring long_name() {return std::wstring(L"kilo");}
|
Chris@16
|
739 static std::wstring symbol() {return short_name();}
|
Chris@16
|
740 static std::wstring prefix() {return long_name();}
|
Chris@16
|
741 };
|
Chris@16
|
742 #endif
|
Chris@16
|
743 #endif
|
Chris@16
|
744
|
Chris@16
|
745 // mega
|
Chris@16
|
746
|
Chris@16
|
747 //template <>
|
Chris@16
|
748 //struct ratio_string_is_localizable<mega> : true_type {};
|
Chris@16
|
749 //
|
Chris@16
|
750 //template <>
|
Chris@16
|
751 //struct ratio_string_id<mega> : integral_constant<int,6> {};
|
Chris@16
|
752
|
Chris@16
|
753 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
754 template <typename CharT>
|
Chris@16
|
755 struct ratio_string<mega, CharT> :
|
Chris@16
|
756 ratio_detail::ratio_string_static<mega,CharT>
|
Chris@16
|
757 {};
|
Chris@16
|
758
|
Chris@16
|
759 #else
|
Chris@16
|
760
|
Chris@16
|
761 template <>
|
Chris@16
|
762 struct ratio_string<mega, char>
|
Chris@16
|
763 {
|
Chris@16
|
764 static std::string short_name() {return std::string(1, 'M');}
|
Chris@16
|
765 static std::string long_name() {return std::string("mega");}
|
Chris@16
|
766 static std::string symbol() {return short_name();}
|
Chris@16
|
767 static std::string prefix() {return long_name();}
|
Chris@16
|
768 };
|
Chris@16
|
769
|
Chris@16
|
770 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
771
|
Chris@16
|
772 template <>
|
Chris@16
|
773 struct ratio_string<mega, char16_t>
|
Chris@16
|
774 {
|
Chris@16
|
775 static std::u16string short_name() {return std::u16string(1, u'M');}
|
Chris@16
|
776 static std::u16string long_name() {return std::u16string(u"mega");}
|
Chris@16
|
777 static std::u16string symbol() {return short_name();}
|
Chris@16
|
778 static std::u16string prefix() {return long_name();}
|
Chris@16
|
779 };
|
Chris@16
|
780
|
Chris@16
|
781 template <>
|
Chris@16
|
782 struct ratio_string<mega, char32_t>
|
Chris@16
|
783 {
|
Chris@16
|
784 static std::u32string short_name() {return std::u32string(1, U'M');}
|
Chris@16
|
785 static std::u32string long_name() {return std::u32string(U"mega");}
|
Chris@16
|
786 static std::u32string symbol() {return short_name();}
|
Chris@16
|
787 static std::u32string prefix() {return long_name();}
|
Chris@16
|
788 };
|
Chris@16
|
789
|
Chris@16
|
790 #endif
|
Chris@16
|
791
|
Chris@16
|
792 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
793 template <>
|
Chris@16
|
794 struct ratio_string<mega, wchar_t>
|
Chris@16
|
795 {
|
Chris@16
|
796 static std::wstring short_name() {return std::wstring(1, L'M');}
|
Chris@16
|
797 static std::wstring long_name() {return std::wstring(L"mega");}
|
Chris@16
|
798 static std::wstring symbol() {return short_name();}
|
Chris@16
|
799 static std::wstring prefix() {return long_name();}
|
Chris@16
|
800 };
|
Chris@16
|
801 #endif
|
Chris@16
|
802 #endif
|
Chris@16
|
803
|
Chris@16
|
804 // giga
|
Chris@16
|
805
|
Chris@16
|
806 //template <>
|
Chris@16
|
807 //struct ratio_string_is_localizable<giga> : true_type {};
|
Chris@16
|
808 //
|
Chris@16
|
809 //template <>
|
Chris@16
|
810 //struct ratio_string_id<giga> : integral_constant<int,9> {};
|
Chris@16
|
811
|
Chris@16
|
812 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
813 template <typename CharT>
|
Chris@16
|
814 struct ratio_string<giga, CharT> :
|
Chris@16
|
815 ratio_detail::ratio_string_static<giga,CharT>
|
Chris@16
|
816 {};
|
Chris@16
|
817
|
Chris@16
|
818 #else
|
Chris@16
|
819
|
Chris@16
|
820 template <>
|
Chris@16
|
821 struct ratio_string<giga, char>
|
Chris@16
|
822 {
|
Chris@16
|
823 static std::string short_name() {return std::string(1, 'G');}
|
Chris@16
|
824 static std::string long_name() {return std::string("giga");}
|
Chris@16
|
825 static std::string symbol() {return short_name();}
|
Chris@16
|
826 static std::string prefix() {return long_name();}
|
Chris@16
|
827 };
|
Chris@16
|
828
|
Chris@16
|
829 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
830
|
Chris@16
|
831 template <>
|
Chris@16
|
832 struct ratio_string<giga, char16_t>
|
Chris@16
|
833 {
|
Chris@16
|
834 static std::u16string short_name() {return std::u16string(1, u'G');}
|
Chris@16
|
835 static std::u16string long_name() {return std::u16string(u"giga");}
|
Chris@16
|
836 static std::u16string symbol() {return short_name();}
|
Chris@16
|
837 static std::u16string prefix() {return long_name();}
|
Chris@16
|
838 };
|
Chris@16
|
839
|
Chris@16
|
840 template <>
|
Chris@16
|
841 struct ratio_string<giga, char32_t>
|
Chris@16
|
842 {
|
Chris@16
|
843 static std::u32string short_name() {return std::u32string(1, U'G');}
|
Chris@16
|
844 static std::u32string long_name() {return std::u32string(U"giga");}
|
Chris@16
|
845 static std::u32string symbol() {return short_name();}
|
Chris@16
|
846 static std::u32string prefix() {return long_name();}
|
Chris@16
|
847 };
|
Chris@16
|
848
|
Chris@16
|
849 #endif
|
Chris@16
|
850
|
Chris@16
|
851 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
852 template <>
|
Chris@16
|
853 struct ratio_string<giga, wchar_t>
|
Chris@16
|
854 {
|
Chris@16
|
855 static std::wstring short_name() {return std::wstring(1, L'G');}
|
Chris@16
|
856 static std::wstring long_name() {return std::wstring(L"giga");}
|
Chris@16
|
857 static std::wstring symbol() {return short_name();}
|
Chris@16
|
858 static std::wstring prefix() {return long_name();}
|
Chris@16
|
859 };
|
Chris@16
|
860 #endif
|
Chris@16
|
861 #endif
|
Chris@16
|
862
|
Chris@16
|
863 // tera
|
Chris@16
|
864
|
Chris@16
|
865 //template <>
|
Chris@16
|
866 //struct ratio_string_is_localizable<tera> : true_type {};
|
Chris@16
|
867 //
|
Chris@16
|
868 //template <>
|
Chris@16
|
869 //struct ratio_string_id<tera> : integral_constant<int,12> {};
|
Chris@16
|
870
|
Chris@16
|
871 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
872 template <typename CharT>
|
Chris@16
|
873 struct ratio_string<tera, CharT> :
|
Chris@16
|
874 ratio_detail::ratio_string_static<tera,CharT>
|
Chris@16
|
875 {};
|
Chris@16
|
876
|
Chris@16
|
877 #else
|
Chris@16
|
878 template <>
|
Chris@16
|
879 struct ratio_string<tera, char>
|
Chris@16
|
880 {
|
Chris@16
|
881 static std::string short_name() {return std::string(1, 'T');}
|
Chris@16
|
882 static std::string long_name() {return std::string("tera");}
|
Chris@16
|
883 static std::string symbol() {return short_name();}
|
Chris@16
|
884 static std::string prefix() {return long_name();}
|
Chris@16
|
885 };
|
Chris@16
|
886
|
Chris@16
|
887 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
888
|
Chris@16
|
889 template <>
|
Chris@16
|
890 struct ratio_string<tera, char16_t>
|
Chris@16
|
891 {
|
Chris@16
|
892 static std::u16string short_name() {return std::u16string(1, u'T');}
|
Chris@16
|
893 static std::u16string long_name() {return std::u16string(u"tera");}
|
Chris@16
|
894 static std::u16string symbol() {return short_name();}
|
Chris@16
|
895 static std::u16string prefix() {return long_name();}
|
Chris@16
|
896 };
|
Chris@16
|
897
|
Chris@16
|
898 template <>
|
Chris@16
|
899 struct ratio_string<tera, char32_t>
|
Chris@16
|
900 {
|
Chris@16
|
901 static std::u32string short_name() {return std::u32string(1, U'T');}
|
Chris@16
|
902 static std::u32string long_name() {return std::u32string(U"tera");}
|
Chris@16
|
903 static std::u32string symbol() {return short_name();}
|
Chris@16
|
904 static std::u32string prefix() {return long_name();}
|
Chris@16
|
905 };
|
Chris@16
|
906
|
Chris@16
|
907 #endif
|
Chris@16
|
908
|
Chris@16
|
909 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
910 template <>
|
Chris@16
|
911 struct ratio_string<tera, wchar_t>
|
Chris@16
|
912 {
|
Chris@16
|
913 static std::wstring short_name() {return std::wstring(1, L'T');}
|
Chris@16
|
914 static std::wstring long_name() {return std::wstring(L"tera");}
|
Chris@16
|
915 static std::wstring symbol() {return short_name();}
|
Chris@16
|
916 static std::wstring prefix() {return long_name();}
|
Chris@16
|
917 };
|
Chris@16
|
918 #endif
|
Chris@16
|
919 #endif
|
Chris@16
|
920
|
Chris@16
|
921 // peta
|
Chris@16
|
922
|
Chris@16
|
923 //template <>
|
Chris@16
|
924 //struct ratio_string_is_localizable<peta> : true_type {};
|
Chris@16
|
925 //
|
Chris@16
|
926 //template <>
|
Chris@16
|
927 //struct ratio_string_id<peta> : integral_constant<int,15> {};
|
Chris@16
|
928
|
Chris@16
|
929
|
Chris@16
|
930 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
931 template <typename CharT>
|
Chris@16
|
932 struct ratio_string<peta, CharT> :
|
Chris@16
|
933 ratio_detail::ratio_string_static<peta,CharT>
|
Chris@16
|
934 {};
|
Chris@16
|
935
|
Chris@16
|
936 #else
|
Chris@16
|
937 template <>
|
Chris@16
|
938 struct ratio_string<peta, char>
|
Chris@16
|
939 {
|
Chris@16
|
940 static std::string short_name() {return std::string(1, 'P');}
|
Chris@16
|
941 static std::string long_name() {return std::string("peta");}
|
Chris@16
|
942 static std::string symbol() {return short_name();}
|
Chris@16
|
943 static std::string prefix() {return long_name();}
|
Chris@16
|
944 };
|
Chris@16
|
945
|
Chris@16
|
946 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
947
|
Chris@16
|
948 template <>
|
Chris@16
|
949 struct ratio_string<peta, char16_t>
|
Chris@16
|
950 {
|
Chris@16
|
951 static std::u16string short_name() {return std::u16string(1, u'P');}
|
Chris@16
|
952 static std::u16string long_name() {return std::u16string(u"peta");}
|
Chris@16
|
953 static std::u16string symbol() {return short_name();}
|
Chris@16
|
954 static std::u16string prefix() {return long_name();}
|
Chris@16
|
955 };
|
Chris@16
|
956
|
Chris@16
|
957 template <>
|
Chris@16
|
958 struct ratio_string<peta, char32_t>
|
Chris@16
|
959 {
|
Chris@16
|
960 static std::u32string short_name() {return std::u32string(1, U'P');}
|
Chris@16
|
961 static std::u32string long_name() {return std::u32string(U"peta");}
|
Chris@16
|
962 static std::u32string symbol() {return short_name();}
|
Chris@16
|
963 static std::u32string prefix() {return long_name();}
|
Chris@16
|
964 };
|
Chris@16
|
965
|
Chris@16
|
966 #endif
|
Chris@16
|
967
|
Chris@16
|
968 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
969 template <>
|
Chris@16
|
970 struct ratio_string<peta, wchar_t>
|
Chris@16
|
971 {
|
Chris@16
|
972 static std::wstring short_name() {return std::wstring(1, L'P');}
|
Chris@16
|
973 static std::wstring long_name() {return std::wstring(L"peta");}
|
Chris@16
|
974 static std::wstring symbol() {return short_name();}
|
Chris@16
|
975 static std::wstring prefix() {return long_name();}
|
Chris@16
|
976 };
|
Chris@16
|
977 #endif
|
Chris@16
|
978 #endif
|
Chris@16
|
979
|
Chris@16
|
980 // exa
|
Chris@16
|
981
|
Chris@16
|
982 //template <>
|
Chris@16
|
983 //struct ratio_string_is_localizable<exa> : true_type {};
|
Chris@16
|
984 //
|
Chris@16
|
985 //template <>
|
Chris@16
|
986 //struct ratio_string_id<exa> : integral_constant<int,18> {};
|
Chris@16
|
987
|
Chris@16
|
988 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
989 template <typename CharT>
|
Chris@16
|
990 struct ratio_string<exa, CharT> :
|
Chris@16
|
991 ratio_detail::ratio_string_static<exa,CharT>
|
Chris@16
|
992 {};
|
Chris@16
|
993
|
Chris@16
|
994 #else
|
Chris@16
|
995 template <>
|
Chris@16
|
996 struct ratio_string<exa, char>
|
Chris@16
|
997 {
|
Chris@16
|
998 static std::string short_name() {return std::string(1, 'E');}
|
Chris@16
|
999 static std::string long_name() {return std::string("exa");}
|
Chris@16
|
1000 static std::string symbol() {return short_name();}
|
Chris@16
|
1001 static std::string prefix() {return long_name();}
|
Chris@16
|
1002 };
|
Chris@16
|
1003
|
Chris@16
|
1004 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
1005
|
Chris@16
|
1006 template <>
|
Chris@16
|
1007 struct ratio_string<exa, char16_t>
|
Chris@16
|
1008 {
|
Chris@16
|
1009 static std::u16string short_name() {return std::u16string(1, u'E');}
|
Chris@16
|
1010 static std::u16string long_name() {return std::u16string(u"exa");}
|
Chris@16
|
1011 static std::u16string symbol() {return short_name();}
|
Chris@16
|
1012 static std::u16string prefix() {return long_name();}
|
Chris@16
|
1013 };
|
Chris@16
|
1014
|
Chris@16
|
1015 template <>
|
Chris@16
|
1016 struct ratio_string<exa, char32_t>
|
Chris@16
|
1017 {
|
Chris@16
|
1018 static std::u32string short_name() {return std::u32string(1, U'E');}
|
Chris@16
|
1019 static std::u32string long_name() {return std::u32string(U"exa");}
|
Chris@16
|
1020 static std::u32string symbol() {return short_name();}
|
Chris@16
|
1021 static std::u32string prefix() {return long_name();}
|
Chris@16
|
1022 };
|
Chris@16
|
1023
|
Chris@16
|
1024 #endif
|
Chris@16
|
1025
|
Chris@16
|
1026 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
1027 template <>
|
Chris@16
|
1028 struct ratio_string<exa, wchar_t>
|
Chris@16
|
1029 {
|
Chris@16
|
1030 static std::wstring short_name() {return std::wstring(1, L'E');}
|
Chris@16
|
1031 static std::wstring long_name() {return std::wstring(L"exa");}
|
Chris@16
|
1032 static std::wstring symbol() {return short_name();}
|
Chris@16
|
1033 static std::wstring prefix() {return long_name();}
|
Chris@16
|
1034 };
|
Chris@16
|
1035 #endif
|
Chris@16
|
1036 #endif
|
Chris@16
|
1037
|
Chris@101
|
1038 #ifdef BOOST_RATIO_EXTENSIONS
|
Chris@101
|
1039
|
Chris@101
|
1040 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
1041 template <typename CharT>
|
Chris@101
|
1042 struct ratio_string<kibi, CharT> :
|
Chris@101
|
1043 ratio_detail::ratio_string_static<kibi,CharT>
|
Chris@101
|
1044 {};
|
Chris@101
|
1045
|
Chris@101
|
1046 #else
|
Chris@101
|
1047 template <>
|
Chris@101
|
1048 struct ratio_string<kibi, char>
|
Chris@101
|
1049 {
|
Chris@101
|
1050 static std::string short_name() {return std::string("Ki");}
|
Chris@101
|
1051 static std::string long_name() {return std::string("kibi");}
|
Chris@101
|
1052 static std::string symbol() {return short_name();}
|
Chris@101
|
1053 static std::string prefix() {return long_name();}
|
Chris@101
|
1054 };
|
Chris@101
|
1055
|
Chris@101
|
1056 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
1057
|
Chris@101
|
1058 template <>
|
Chris@101
|
1059 struct ratio_string<kibi, char16_t>
|
Chris@101
|
1060 {
|
Chris@101
|
1061 static std::u16string short_name() {return std::u16string(u"Ki");}
|
Chris@101
|
1062 static std::u16string long_name() {return std::u16string(u"kibi");}
|
Chris@101
|
1063 static std::u16string symbol() {return short_name();}
|
Chris@101
|
1064 static std::u16string prefix() {return long_name();}
|
Chris@101
|
1065 };
|
Chris@101
|
1066
|
Chris@101
|
1067 template <>
|
Chris@101
|
1068 struct ratio_string<kibi, char32_t>
|
Chris@101
|
1069 {
|
Chris@101
|
1070 static std::u32string short_name() {return std::u32string(U"Ki");}
|
Chris@101
|
1071 static std::u32string long_name() {return std::u32string(U"kibi");}
|
Chris@101
|
1072 static std::u32string symbol() {return short_name();}
|
Chris@101
|
1073 static std::u32string prefix() {return long_name();}
|
Chris@101
|
1074 };
|
Chris@101
|
1075
|
Chris@101
|
1076 #endif
|
Chris@101
|
1077
|
Chris@101
|
1078 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
1079 template <>
|
Chris@101
|
1080 struct ratio_string<kibi, wchar_t>
|
Chris@101
|
1081 {
|
Chris@101
|
1082 static std::wstring short_name() {return std::wstring(L"Ki");}
|
Chris@101
|
1083 static std::wstring long_name() {return std::wstring(L"kibi");}
|
Chris@101
|
1084 static std::wstring symbol() {return short_name();}
|
Chris@101
|
1085 static std::wstring prefix() {return long_name();}
|
Chris@101
|
1086 };
|
Chris@101
|
1087 #endif
|
Chris@101
|
1088 #endif
|
Chris@101
|
1089
|
Chris@101
|
1090 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
1091 template <typename CharT>
|
Chris@101
|
1092 struct ratio_string<mebi, CharT> :
|
Chris@101
|
1093 ratio_detail::ratio_string_static<mebi,CharT>
|
Chris@101
|
1094 {};
|
Chris@101
|
1095
|
Chris@101
|
1096 #else
|
Chris@101
|
1097 template <>
|
Chris@101
|
1098 struct ratio_string<mebi, char>
|
Chris@101
|
1099 {
|
Chris@101
|
1100 static std::string short_name() {return std::string("Mi");}
|
Chris@101
|
1101 static std::string long_name() {return std::string("mebi");}
|
Chris@101
|
1102 static std::string symbol() {return short_name();}
|
Chris@101
|
1103 static std::string prefix() {return long_name();}
|
Chris@101
|
1104 };
|
Chris@101
|
1105
|
Chris@101
|
1106 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
1107
|
Chris@101
|
1108 template <>
|
Chris@101
|
1109 struct ratio_string<mebi, char16_t>
|
Chris@101
|
1110 {
|
Chris@101
|
1111 static std::u16string short_name() {return std::u16string(u"Mi");}
|
Chris@101
|
1112 static std::u16string long_name() {return std::u16string(u"mebi");}
|
Chris@101
|
1113 static std::u16string symbol() {return short_name();}
|
Chris@101
|
1114 static std::u16string prefix() {return long_name();}
|
Chris@101
|
1115 };
|
Chris@101
|
1116
|
Chris@101
|
1117 template <>
|
Chris@101
|
1118 struct ratio_string<mebi, char32_t>
|
Chris@101
|
1119 {
|
Chris@101
|
1120 static std::u32string short_name() {return std::u32string(U"Mi");}
|
Chris@101
|
1121 static std::u32string long_name() {return std::u32string(U"mebi");}
|
Chris@101
|
1122 static std::u32string symbol() {return short_name();}
|
Chris@101
|
1123 static std::u32string prefix() {return long_name();}
|
Chris@101
|
1124 };
|
Chris@101
|
1125
|
Chris@101
|
1126 #endif
|
Chris@101
|
1127
|
Chris@101
|
1128 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
1129 template <>
|
Chris@101
|
1130 struct ratio_string<mebi, wchar_t>
|
Chris@101
|
1131 {
|
Chris@101
|
1132 static std::wstring short_name() {return std::wstring(L"Mi");}
|
Chris@101
|
1133 static std::wstring long_name() {return std::wstring(L"mebi");}
|
Chris@101
|
1134 static std::wstring symbol() {return short_name();}
|
Chris@101
|
1135 static std::wstring prefix() {return long_name();}
|
Chris@101
|
1136 };
|
Chris@101
|
1137 #endif
|
Chris@101
|
1138 #endif
|
Chris@101
|
1139
|
Chris@101
|
1140 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
1141 template <typename CharT>
|
Chris@101
|
1142 struct ratio_string<gibi, CharT> :
|
Chris@101
|
1143 ratio_detail::ratio_string_static<gibi,CharT>
|
Chris@101
|
1144 {};
|
Chris@101
|
1145
|
Chris@101
|
1146 #else
|
Chris@101
|
1147 template <>
|
Chris@101
|
1148 struct ratio_string<gibi, char>
|
Chris@101
|
1149 {
|
Chris@101
|
1150 static std::string short_name() {return std::string("Gi");}
|
Chris@101
|
1151 static std::string long_name() {return std::string("gibi");}
|
Chris@101
|
1152 static std::string symbol() {return short_name();}
|
Chris@101
|
1153 static std::string prefix() {return long_name();}
|
Chris@101
|
1154 };
|
Chris@101
|
1155
|
Chris@101
|
1156 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
1157
|
Chris@101
|
1158 template <>
|
Chris@101
|
1159 struct ratio_string<gibi, char16_t>
|
Chris@101
|
1160 {
|
Chris@101
|
1161 static std::u16string short_name() {return std::u16string(u"Gi");}
|
Chris@101
|
1162 static std::u16string long_name() {return std::u16string(u"gibi");}
|
Chris@101
|
1163 static std::u16string symbol() {return short_name();}
|
Chris@101
|
1164 static std::u16string prefix() {return long_name();}
|
Chris@101
|
1165 };
|
Chris@101
|
1166
|
Chris@101
|
1167 template <>
|
Chris@101
|
1168 struct ratio_string<gibi, char32_t>
|
Chris@101
|
1169 {
|
Chris@101
|
1170 static std::u32string short_name() {return std::u32string(U"Gi");}
|
Chris@101
|
1171 static std::u32string long_name() {return std::u32string(U"gibi");}
|
Chris@101
|
1172 static std::u32string symbol() {return short_name();}
|
Chris@101
|
1173 static std::u32string prefix() {return long_name();}
|
Chris@101
|
1174 };
|
Chris@101
|
1175
|
Chris@101
|
1176 #endif
|
Chris@101
|
1177
|
Chris@101
|
1178 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
1179 template <>
|
Chris@101
|
1180 struct ratio_string<gibi, wchar_t>
|
Chris@101
|
1181 {
|
Chris@101
|
1182 static std::wstring short_name() {return std::wstring(L"Gi");}
|
Chris@101
|
1183 static std::wstring long_name() {return std::wstring(L"gibi");}
|
Chris@101
|
1184 static std::wstring symbol() {return short_name();}
|
Chris@101
|
1185 static std::wstring prefix() {return long_name();}
|
Chris@101
|
1186 };
|
Chris@101
|
1187 #endif
|
Chris@101
|
1188 #endif
|
Chris@101
|
1189
|
Chris@101
|
1190 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
1191 template <typename CharT>
|
Chris@101
|
1192 struct ratio_string<tebi, CharT> :
|
Chris@101
|
1193 ratio_detail::ratio_string_static<tebi,CharT>
|
Chris@101
|
1194 {};
|
Chris@101
|
1195
|
Chris@101
|
1196 #else
|
Chris@101
|
1197 template <>
|
Chris@101
|
1198 struct ratio_string<tebi, char>
|
Chris@101
|
1199 {
|
Chris@101
|
1200 static std::string short_name() {return std::string("Ti");}
|
Chris@101
|
1201 static std::string long_name() {return std::string("tebi");}
|
Chris@101
|
1202 static std::string symbol() {return short_name();}
|
Chris@101
|
1203 static std::string prefix() {return long_name();}
|
Chris@101
|
1204 };
|
Chris@101
|
1205
|
Chris@101
|
1206 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
1207
|
Chris@101
|
1208 template <>
|
Chris@101
|
1209 struct ratio_string<tebi, char16_t>
|
Chris@101
|
1210 {
|
Chris@101
|
1211 static std::u16string short_name() {return std::u16string(u"Ti");}
|
Chris@101
|
1212 static std::u16string long_name() {return std::u16string(u"tebi");}
|
Chris@101
|
1213 static std::u16string symbol() {return short_name();}
|
Chris@101
|
1214 static std::u16string prefix() {return long_name();}
|
Chris@101
|
1215 };
|
Chris@101
|
1216
|
Chris@101
|
1217 template <>
|
Chris@101
|
1218 struct ratio_string<tebi, char32_t>
|
Chris@101
|
1219 {
|
Chris@101
|
1220 static std::u32string short_name() {return std::u32string(U"Ti");}
|
Chris@101
|
1221 static std::u32string long_name() {return std::u32string(U"tebi");}
|
Chris@101
|
1222 static std::u32string symbol() {return short_name();}
|
Chris@101
|
1223 static std::u32string prefix() {return long_name();}
|
Chris@101
|
1224 };
|
Chris@101
|
1225
|
Chris@101
|
1226 #endif
|
Chris@101
|
1227
|
Chris@101
|
1228 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
1229 template <>
|
Chris@101
|
1230 struct ratio_string<tebi, wchar_t>
|
Chris@101
|
1231 {
|
Chris@101
|
1232 static std::wstring short_name() {return std::wstring(L"Ti");}
|
Chris@101
|
1233 static std::wstring long_name() {return std::wstring(L"tebi");}
|
Chris@101
|
1234 static std::wstring symbol() {return short_name();}
|
Chris@101
|
1235 static std::wstring prefix() {return long_name();}
|
Chris@101
|
1236 };
|
Chris@101
|
1237 #endif
|
Chris@101
|
1238 #endif
|
Chris@101
|
1239
|
Chris@101
|
1240 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
1241 template <typename CharT>
|
Chris@101
|
1242 struct ratio_string<pebi, CharT> :
|
Chris@101
|
1243 ratio_detail::ratio_string_static<pebi,CharT>
|
Chris@101
|
1244 {};
|
Chris@101
|
1245
|
Chris@101
|
1246 #else
|
Chris@101
|
1247 template <>
|
Chris@101
|
1248 struct ratio_string<pebi, char>
|
Chris@101
|
1249 {
|
Chris@101
|
1250 static std::string short_name() {return std::string("Pi");}
|
Chris@101
|
1251 static std::string long_name() {return std::string("pebi");}
|
Chris@101
|
1252 static std::string symbol() {return short_name();}
|
Chris@101
|
1253 static std::string prefix() {return long_name();}
|
Chris@101
|
1254 };
|
Chris@101
|
1255
|
Chris@101
|
1256 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
1257
|
Chris@101
|
1258 template <>
|
Chris@101
|
1259 struct ratio_string<pebi, char16_t>
|
Chris@101
|
1260 {
|
Chris@101
|
1261 static std::u16string short_name() {return std::u16string(u"Pi");}
|
Chris@101
|
1262 static std::u16string long_name() {return std::u16string(u"pebi");}
|
Chris@101
|
1263 static std::u16string symbol() {return short_name();}
|
Chris@101
|
1264 static std::u16string prefix() {return long_name();}
|
Chris@101
|
1265 };
|
Chris@101
|
1266
|
Chris@101
|
1267 template <>
|
Chris@101
|
1268 struct ratio_string<pebi, char32_t>
|
Chris@101
|
1269 {
|
Chris@101
|
1270 static std::u32string short_name() {return std::u32string(U"Pi");}
|
Chris@101
|
1271 static std::u32string long_name() {return std::u32string(U"pebi");}
|
Chris@101
|
1272 static std::u32string symbol() {return short_name();}
|
Chris@101
|
1273 static std::u32string prefix() {return long_name();}
|
Chris@101
|
1274 };
|
Chris@101
|
1275
|
Chris@101
|
1276 #endif
|
Chris@101
|
1277
|
Chris@101
|
1278 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
1279 template <>
|
Chris@101
|
1280 struct ratio_string<pebi, wchar_t>
|
Chris@101
|
1281 {
|
Chris@101
|
1282 static std::wstring short_name() {return std::wstring(L"Pi");}
|
Chris@101
|
1283 static std::wstring long_name() {return std::wstring(L"pebi");}
|
Chris@101
|
1284 static std::wstring symbol() {return short_name();}
|
Chris@101
|
1285 static std::wstring prefix() {return long_name();}
|
Chris@101
|
1286 };
|
Chris@101
|
1287 #endif
|
Chris@101
|
1288 #endif
|
Chris@101
|
1289
|
Chris@101
|
1290 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
1291 template <typename CharT>
|
Chris@101
|
1292 struct ratio_string<exbi, CharT> :
|
Chris@101
|
1293 ratio_detail::ratio_string_static<exbi,CharT>
|
Chris@101
|
1294 {};
|
Chris@101
|
1295
|
Chris@101
|
1296 #else
|
Chris@101
|
1297 template <>
|
Chris@101
|
1298 struct ratio_string<exbi, char>
|
Chris@101
|
1299 {
|
Chris@101
|
1300 static std::string short_name() {return std::string("Ei");}
|
Chris@101
|
1301 static std::string long_name() {return std::string("exbi");}
|
Chris@101
|
1302 static std::string symbol() {return short_name();}
|
Chris@101
|
1303 static std::string prefix() {return long_name();}
|
Chris@101
|
1304 };
|
Chris@101
|
1305
|
Chris@101
|
1306 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
1307
|
Chris@101
|
1308 template <>
|
Chris@101
|
1309 struct ratio_string<exbi, char16_t>
|
Chris@101
|
1310 {
|
Chris@101
|
1311 static std::u16string short_name() {return std::u16string(u"Ei");}
|
Chris@101
|
1312 static std::u16string long_name() {return std::u16string(u"exbi");}
|
Chris@101
|
1313 static std::u16string symbol() {return short_name();}
|
Chris@101
|
1314 static std::u16string prefix() {return long_name();}
|
Chris@101
|
1315 };
|
Chris@101
|
1316
|
Chris@101
|
1317 template <>
|
Chris@101
|
1318 struct ratio_string<exbi, char32_t>
|
Chris@101
|
1319 {
|
Chris@101
|
1320 static std::u32string short_name() {return std::u32string(U"Ei");}
|
Chris@101
|
1321 static std::u32string long_name() {return std::u32string(U"exbi");}
|
Chris@101
|
1322 static std::u32string symbol() {return short_name();}
|
Chris@101
|
1323 static std::u32string prefix() {return long_name();}
|
Chris@101
|
1324 };
|
Chris@101
|
1325
|
Chris@101
|
1326 #endif
|
Chris@101
|
1327
|
Chris@101
|
1328 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
1329 template <>
|
Chris@101
|
1330 struct ratio_string<exbi, wchar_t>
|
Chris@101
|
1331 {
|
Chris@101
|
1332 static std::wstring short_name() {return std::wstring(L"Ei");}
|
Chris@101
|
1333 static std::wstring long_name() {return std::wstring(L"exbi");}
|
Chris@101
|
1334 static std::wstring symbol() {return short_name();}
|
Chris@101
|
1335 static std::wstring prefix() {return long_name();}
|
Chris@101
|
1336 };
|
Chris@101
|
1337 #endif
|
Chris@101
|
1338 #endif
|
Chris@101
|
1339 #endif
|
Chris@16
|
1340 }
|
Chris@16
|
1341
|
Chris@16
|
1342 #endif // BOOST_RATIO_RATIO_IO_HPP
|