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_RATIO_IO_HPP
|
Chris@16
|
13 #define BOOST_RATIO_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> prefix();
|
Chris@16
|
29 static basic_string<CharT> symbol();
|
Chris@16
|
30 };
|
Chris@16
|
31
|
Chris@16
|
32 } // boost
|
Chris@16
|
33
|
Chris@16
|
34 */
|
Chris@16
|
35 #include <boost/ratio/config.hpp>
|
Chris@16
|
36
|
Chris@16
|
37 #ifdef BOOST_RATIO_PROVIDES_DEPRECATED_FEATURES_SINCE_V2_0_0
|
Chris@16
|
38 #include <boost/ratio/detail/ratio_io.hpp>
|
Chris@16
|
39 #else
|
Chris@16
|
40
|
Chris@16
|
41 #include <boost/config.hpp>
|
Chris@16
|
42 #include <boost/ratio/ratio.hpp>
|
Chris@16
|
43 #include <boost/type_traits/integral_constant.hpp>
|
Chris@16
|
44 #include <string>
|
Chris@16
|
45 #include <sstream>
|
Chris@16
|
46
|
Chris@16
|
47
|
Chris@16
|
48 #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
|
49 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
50 #undef BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
51 #endif
|
Chris@16
|
52 #else
|
Chris@16
|
53 #define BOOST_RATIO_HAS_UNICODE_SUPPORT 1
|
Chris@16
|
54 #endif
|
Chris@16
|
55
|
Chris@16
|
56 namespace boost {
|
Chris@16
|
57
|
Chris@16
|
58 //template <class Ratio>
|
Chris@16
|
59 //struct ratio_string_is_localizable : false_type {};
|
Chris@16
|
60 //template <class Ratio>
|
Chris@16
|
61 //struct ratio_string_id : integral_constant<int,0> {};
|
Chris@16
|
62
|
Chris@16
|
63 template <class Ratio, class CharT>
|
Chris@16
|
64 struct ratio_string
|
Chris@16
|
65 {
|
Chris@16
|
66 static std::basic_string<CharT> symbol() {return prefix();}
|
Chris@16
|
67 static std::basic_string<CharT> prefix();
|
Chris@16
|
68 };
|
Chris@16
|
69
|
Chris@16
|
70 template <class Ratio, class CharT>
|
Chris@16
|
71 std::basic_string<CharT>
|
Chris@16
|
72 ratio_string<Ratio, CharT>::prefix()
|
Chris@16
|
73 {
|
Chris@16
|
74 std::basic_ostringstream<CharT> os;
|
Chris@16
|
75 os << CharT('[') << Ratio::num << CharT('/')
|
Chris@16
|
76 << Ratio::den << CharT(']');
|
Chris@16
|
77 return os.str();
|
Chris@16
|
78 }
|
Chris@16
|
79
|
Chris@16
|
80 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
81 namespace ratio_detail {
|
Chris@16
|
82 template <class Ratio, class CharT>
|
Chris@16
|
83 struct ratio_string_static
|
Chris@16
|
84 {
|
Chris@16
|
85 static std::string symbol() {
|
Chris@16
|
86 return std::basic_string<CharT>(
|
Chris@16
|
87 static_string::c_str<
|
Chris@16
|
88 typename ratio_static_string<Ratio, CharT>::symbol
|
Chris@16
|
89 >::value);
|
Chris@16
|
90 }
|
Chris@16
|
91 static std::string prefix() {
|
Chris@16
|
92 return std::basic_string<CharT>(
|
Chris@16
|
93 static_string::c_str<
|
Chris@16
|
94 typename ratio_static_string<Ratio, CharT>::prefix
|
Chris@16
|
95 >::value);
|
Chris@16
|
96 }
|
Chris@16
|
97 };
|
Chris@16
|
98 }
|
Chris@16
|
99 #endif
|
Chris@16
|
100 // atto
|
Chris@16
|
101 //template <>
|
Chris@16
|
102 //struct ratio_string_is_localizable<atto> : true_type {};
|
Chris@16
|
103 //
|
Chris@16
|
104 //template <>
|
Chris@16
|
105 //struct ratio_string_id<atto> : integral_constant<int,-18> {};
|
Chris@16
|
106
|
Chris@16
|
107 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
108 template <typename CharT>
|
Chris@16
|
109 struct ratio_string<atto, CharT> :
|
Chris@16
|
110 ratio_detail::ratio_string_static<atto,CharT>
|
Chris@16
|
111 {};
|
Chris@16
|
112
|
Chris@16
|
113 #else
|
Chris@16
|
114 template <>
|
Chris@16
|
115 struct ratio_string<atto, char>
|
Chris@16
|
116 {
|
Chris@16
|
117 static std::string symbol() {return std::string(1, 'a');}
|
Chris@16
|
118 static std::string prefix() {return std::string("atto");}
|
Chris@16
|
119 };
|
Chris@16
|
120
|
Chris@16
|
121 #if defined 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 symbol() {return std::u16string(1, u'a');}
|
Chris@16
|
127 static std::u16string prefix() {return std::u16string(u"atto");}
|
Chris@16
|
128 };
|
Chris@16
|
129
|
Chris@16
|
130 template <>
|
Chris@16
|
131 struct ratio_string<atto, char32_t>
|
Chris@16
|
132 {
|
Chris@16
|
133 static std::u32string symbol() {return std::u32string(1, U'a');}
|
Chris@16
|
134 static std::u32string prefix() {return std::u32string(U"atto");}
|
Chris@16
|
135 };
|
Chris@16
|
136
|
Chris@16
|
137 #endif
|
Chris@16
|
138
|
Chris@16
|
139 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
140 template <>
|
Chris@16
|
141 struct ratio_string<atto, wchar_t>
|
Chris@16
|
142 {
|
Chris@16
|
143 static std::wstring symbol() {return std::wstring(1, L'a');}
|
Chris@16
|
144 static std::wstring prefix() {return std::wstring(L"atto");}
|
Chris@16
|
145 };
|
Chris@16
|
146 #endif
|
Chris@16
|
147 #endif
|
Chris@16
|
148
|
Chris@16
|
149 // femto
|
Chris@16
|
150
|
Chris@16
|
151 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
152 template <typename CharT>
|
Chris@16
|
153 struct ratio_string<femto, CharT> :
|
Chris@16
|
154 ratio_detail::ratio_string_static<femto,CharT>
|
Chris@16
|
155 {};
|
Chris@16
|
156
|
Chris@16
|
157 #else
|
Chris@16
|
158
|
Chris@16
|
159 template <>
|
Chris@16
|
160 struct ratio_string<femto, char>
|
Chris@16
|
161 {
|
Chris@16
|
162 static std::string symbol() {return std::string(1, 'f');}
|
Chris@16
|
163 static std::string prefix() {return std::string("femto");}
|
Chris@16
|
164 };
|
Chris@16
|
165
|
Chris@16
|
166 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
167
|
Chris@16
|
168 template <>
|
Chris@16
|
169 struct ratio_string<femto, char16_t>
|
Chris@16
|
170 {
|
Chris@16
|
171 static std::u16string symbol() {return std::u16string(1, u'f');}
|
Chris@16
|
172 static std::u16string prefix() {return std::u16string(u"femto");}
|
Chris@16
|
173 };
|
Chris@16
|
174
|
Chris@16
|
175 template <>
|
Chris@16
|
176 struct ratio_string<femto, char32_t>
|
Chris@16
|
177 {
|
Chris@16
|
178 static std::u32string symbol() {return std::u32string(1, U'f');}
|
Chris@16
|
179 static std::u32string prefix() {return std::u32string(U"femto");}
|
Chris@16
|
180 };
|
Chris@16
|
181
|
Chris@16
|
182 #endif
|
Chris@16
|
183
|
Chris@16
|
184 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
185 template <>
|
Chris@16
|
186 struct ratio_string<femto, wchar_t>
|
Chris@16
|
187 {
|
Chris@16
|
188 static std::wstring symbol() {return std::wstring(1, L'f');}
|
Chris@16
|
189 static std::wstring prefix() {return std::wstring(L"femto");}
|
Chris@16
|
190 };
|
Chris@16
|
191 #endif
|
Chris@16
|
192 #endif
|
Chris@16
|
193
|
Chris@16
|
194 // pico
|
Chris@16
|
195
|
Chris@16
|
196 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
197 template <typename CharT>
|
Chris@16
|
198 struct ratio_string<pico, CharT> :
|
Chris@16
|
199 ratio_detail::ratio_string_static<pico,CharT>
|
Chris@16
|
200 {};
|
Chris@16
|
201
|
Chris@16
|
202 #else
|
Chris@16
|
203 template <>
|
Chris@16
|
204 struct ratio_string<pico, char>
|
Chris@16
|
205 {
|
Chris@16
|
206 static std::string symbol() {return std::string(1, 'p');}
|
Chris@16
|
207 static std::string prefix() {return std::string("pico");}
|
Chris@16
|
208 };
|
Chris@16
|
209
|
Chris@16
|
210 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
211
|
Chris@16
|
212 template <>
|
Chris@16
|
213 struct ratio_string<pico, char16_t>
|
Chris@16
|
214 {
|
Chris@16
|
215 static std::u16string symbol() {return std::u16string(1, u'p');}
|
Chris@16
|
216 static std::u16string prefix() {return std::u16string(u"pico");}
|
Chris@16
|
217 };
|
Chris@16
|
218
|
Chris@16
|
219 template <>
|
Chris@16
|
220 struct ratio_string<pico, char32_t>
|
Chris@16
|
221 {
|
Chris@16
|
222 static std::u32string symbol() {return std::u32string(1, U'p');}
|
Chris@16
|
223 static std::u32string prefix() {return std::u32string(U"pico");}
|
Chris@16
|
224 };
|
Chris@16
|
225
|
Chris@16
|
226 #endif
|
Chris@16
|
227
|
Chris@16
|
228 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
229 template <>
|
Chris@16
|
230 struct ratio_string<pico, wchar_t>
|
Chris@16
|
231 {
|
Chris@16
|
232 static std::wstring symbol() {return std::wstring(1, L'p');}
|
Chris@16
|
233 static std::wstring prefix() {return std::wstring(L"pico");}
|
Chris@16
|
234 };
|
Chris@16
|
235 #endif
|
Chris@16
|
236 #endif
|
Chris@16
|
237
|
Chris@16
|
238 // nano
|
Chris@16
|
239
|
Chris@16
|
240 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
241 template <typename CharT>
|
Chris@16
|
242 struct ratio_string<nano, CharT> :
|
Chris@16
|
243 ratio_detail::ratio_string_static<nano,CharT>
|
Chris@16
|
244 {};
|
Chris@16
|
245
|
Chris@16
|
246 #else
|
Chris@16
|
247 template <>
|
Chris@16
|
248 struct ratio_string<nano, char>
|
Chris@16
|
249 {
|
Chris@16
|
250 static std::string symbol() {return std::string(1, 'n');}
|
Chris@16
|
251 static std::string prefix() {return std::string("nano");}
|
Chris@16
|
252 };
|
Chris@16
|
253
|
Chris@16
|
254 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
255
|
Chris@16
|
256 template <>
|
Chris@16
|
257 struct ratio_string<nano, char16_t>
|
Chris@16
|
258 {
|
Chris@16
|
259 static std::u16string symbol() {return std::u16string(1, u'n');}
|
Chris@16
|
260 static std::u16string prefix() {return std::u16string(u"nano");}
|
Chris@16
|
261 };
|
Chris@16
|
262
|
Chris@16
|
263 template <>
|
Chris@16
|
264 struct ratio_string<nano, char32_t>
|
Chris@16
|
265 {
|
Chris@16
|
266 static std::u32string symbol() {return std::u32string(1, U'n');}
|
Chris@16
|
267 static std::u32string prefix() {return std::u32string(U"nano");}
|
Chris@16
|
268 };
|
Chris@16
|
269
|
Chris@16
|
270 #endif
|
Chris@16
|
271
|
Chris@16
|
272 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
273 template <>
|
Chris@16
|
274 struct ratio_string<nano, wchar_t>
|
Chris@16
|
275 {
|
Chris@16
|
276 static std::wstring symbol() {return std::wstring(1, L'n');}
|
Chris@16
|
277 static std::wstring prefix() {return std::wstring(L"nano");}
|
Chris@16
|
278 };
|
Chris@16
|
279 #endif
|
Chris@16
|
280 #endif
|
Chris@16
|
281
|
Chris@16
|
282 // micro
|
Chris@16
|
283
|
Chris@16
|
284 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
285 template <typename CharT>
|
Chris@16
|
286 struct ratio_string<micro, CharT> :
|
Chris@16
|
287 ratio_detail::ratio_string_static<micro,CharT>
|
Chris@16
|
288 {};
|
Chris@16
|
289
|
Chris@16
|
290 #else
|
Chris@16
|
291 template <>
|
Chris@16
|
292 struct ratio_string<micro, char>
|
Chris@16
|
293 {
|
Chris@16
|
294 static std::string symbol() {return std::string("\xC2\xB5");}
|
Chris@16
|
295 static std::string prefix() {return std::string("micro");}
|
Chris@16
|
296 };
|
Chris@16
|
297
|
Chris@16
|
298 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
299
|
Chris@16
|
300 template <>
|
Chris@16
|
301 struct ratio_string<micro, char16_t>
|
Chris@16
|
302 {
|
Chris@16
|
303 static std::u16string symbol() {return std::u16string(1, u'\xB5');}
|
Chris@16
|
304 static std::u16string prefix() {return std::u16string(u"micro");}
|
Chris@16
|
305 };
|
Chris@16
|
306
|
Chris@16
|
307 template <>
|
Chris@16
|
308 struct ratio_string<micro, char32_t>
|
Chris@16
|
309 {
|
Chris@16
|
310 static std::u32string symbol() {return std::u32string(1, U'\xB5');}
|
Chris@16
|
311 static std::u32string prefix() {return std::u32string(U"micro");}
|
Chris@16
|
312 };
|
Chris@16
|
313
|
Chris@16
|
314 #endif
|
Chris@16
|
315
|
Chris@16
|
316 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
317 template <>
|
Chris@16
|
318 struct ratio_string<micro, wchar_t>
|
Chris@16
|
319 {
|
Chris@16
|
320 static std::wstring symbol() {return std::wstring(1, L'\xB5');}
|
Chris@16
|
321 static std::wstring prefix() {return std::wstring(L"micro");}
|
Chris@16
|
322 };
|
Chris@16
|
323 #endif
|
Chris@16
|
324 #endif
|
Chris@16
|
325
|
Chris@16
|
326 // milli
|
Chris@16
|
327
|
Chris@16
|
328 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
329 template <typename CharT>
|
Chris@16
|
330 struct ratio_string<milli, CharT> :
|
Chris@16
|
331 ratio_detail::ratio_string_static<milli,CharT>
|
Chris@16
|
332 {};
|
Chris@16
|
333
|
Chris@16
|
334 #else
|
Chris@16
|
335 template <>
|
Chris@16
|
336 struct ratio_string<milli, char>
|
Chris@16
|
337 {
|
Chris@16
|
338 static std::string symbol() {return std::string(1, 'm');}
|
Chris@16
|
339 static std::string prefix() {return std::string("milli");}
|
Chris@16
|
340 };
|
Chris@16
|
341
|
Chris@16
|
342 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
343
|
Chris@16
|
344 template <>
|
Chris@16
|
345 struct ratio_string<milli, char16_t>
|
Chris@16
|
346 {
|
Chris@16
|
347 static std::u16string symbol() {return std::u16string(1, u'm');}
|
Chris@16
|
348 static std::u16string prefix() {return std::u16string(u"milli");}
|
Chris@16
|
349 };
|
Chris@16
|
350
|
Chris@16
|
351 template <>
|
Chris@16
|
352 struct ratio_string<milli, char32_t>
|
Chris@16
|
353 {
|
Chris@16
|
354 static std::u32string symbol() {return std::u32string(1, U'm');}
|
Chris@16
|
355 static std::u32string prefix() {return std::u32string(U"milli");}
|
Chris@16
|
356 };
|
Chris@16
|
357
|
Chris@16
|
358 #endif
|
Chris@16
|
359
|
Chris@16
|
360 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
361 template <>
|
Chris@16
|
362 struct ratio_string<milli, wchar_t>
|
Chris@16
|
363 {
|
Chris@16
|
364 static std::wstring symbol() {return std::wstring(1, L'm');}
|
Chris@16
|
365 static std::wstring prefix() {return std::wstring(L"milli");}
|
Chris@16
|
366 };
|
Chris@16
|
367 #endif
|
Chris@16
|
368 #endif
|
Chris@16
|
369
|
Chris@16
|
370 // centi
|
Chris@16
|
371
|
Chris@16
|
372 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
373 template <typename CharT>
|
Chris@16
|
374 struct ratio_string<centi, CharT> :
|
Chris@16
|
375 ratio_detail::ratio_string_static<centi,CharT>
|
Chris@16
|
376 {};
|
Chris@16
|
377
|
Chris@16
|
378 #else
|
Chris@16
|
379 template <>
|
Chris@16
|
380 struct ratio_string<centi, char>
|
Chris@16
|
381 {
|
Chris@16
|
382 static std::string symbol() {return std::string(1, 'c');}
|
Chris@16
|
383 static std::string prefix() {return std::string("centi");}
|
Chris@16
|
384 };
|
Chris@16
|
385
|
Chris@16
|
386 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
387
|
Chris@16
|
388 template <>
|
Chris@16
|
389 struct ratio_string<centi, char16_t>
|
Chris@16
|
390 {
|
Chris@16
|
391 static std::u16string symbol() {return std::u16string(1, u'c');}
|
Chris@16
|
392 static std::u16string prefix() {return std::u16string(u"centi");}
|
Chris@16
|
393 };
|
Chris@16
|
394
|
Chris@16
|
395 template <>
|
Chris@16
|
396 struct ratio_string<centi, char32_t>
|
Chris@16
|
397 {
|
Chris@16
|
398 static std::u32string symbol() {return std::u32string(1, U'c');}
|
Chris@16
|
399 static std::u32string prefix() {return std::u32string(U"centi");}
|
Chris@16
|
400 };
|
Chris@16
|
401
|
Chris@16
|
402 #endif
|
Chris@16
|
403
|
Chris@16
|
404 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
405 template <>
|
Chris@16
|
406 struct ratio_string<centi, wchar_t>
|
Chris@16
|
407 {
|
Chris@16
|
408 static std::wstring symbol() {return std::wstring(1, L'c');}
|
Chris@16
|
409 static std::wstring prefix() {return std::wstring(L"centi");}
|
Chris@16
|
410 };
|
Chris@16
|
411 #endif
|
Chris@16
|
412 #endif
|
Chris@16
|
413
|
Chris@16
|
414 // deci
|
Chris@16
|
415
|
Chris@16
|
416 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
417 template <typename CharT>
|
Chris@16
|
418 struct ratio_string<deci, CharT> :
|
Chris@16
|
419 ratio_detail::ratio_string_static<deci,CharT>
|
Chris@16
|
420 {};
|
Chris@16
|
421
|
Chris@16
|
422 #else
|
Chris@16
|
423
|
Chris@16
|
424 template <>
|
Chris@16
|
425 struct ratio_string<deci, char>
|
Chris@16
|
426 {
|
Chris@16
|
427 static std::string symbol() {return std::string(1, 'd');}
|
Chris@16
|
428 static std::string prefix() {return std::string("deci");}
|
Chris@16
|
429 };
|
Chris@16
|
430
|
Chris@16
|
431 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
432
|
Chris@16
|
433 template <>
|
Chris@16
|
434 struct ratio_string<deci, char16_t>
|
Chris@16
|
435 {
|
Chris@16
|
436 static std::u16string symbol() {return std::u16string(1, u'd');}
|
Chris@16
|
437 static std::u16string prefix() {return std::u16string(u"deci");}
|
Chris@16
|
438 };
|
Chris@16
|
439
|
Chris@16
|
440 template <>
|
Chris@16
|
441 struct ratio_string<deci, char32_t>
|
Chris@16
|
442 {
|
Chris@16
|
443 static std::u32string symbol() {return std::u32string(1, U'd');}
|
Chris@16
|
444 static std::u32string prefix() {return std::u32string(U"deci");}
|
Chris@16
|
445 };
|
Chris@16
|
446
|
Chris@16
|
447 #endif
|
Chris@16
|
448
|
Chris@16
|
449 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
450 template <>
|
Chris@16
|
451 struct ratio_string<deci, wchar_t>
|
Chris@16
|
452 {
|
Chris@16
|
453 static std::wstring symbol() {return std::wstring(1, L'd');}
|
Chris@16
|
454 static std::wstring prefix() {return std::wstring(L"deci");}
|
Chris@16
|
455 };
|
Chris@16
|
456 #endif
|
Chris@16
|
457 #endif
|
Chris@16
|
458
|
Chris@16
|
459 // unit
|
Chris@16
|
460
|
Chris@16
|
461 // deca
|
Chris@16
|
462
|
Chris@16
|
463
|
Chris@16
|
464 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
465 template <typename CharT>
|
Chris@16
|
466 struct ratio_string<deca, CharT> :
|
Chris@16
|
467 ratio_detail::ratio_string_static<deca,CharT>
|
Chris@16
|
468 {};
|
Chris@16
|
469
|
Chris@16
|
470 #else
|
Chris@16
|
471 template <>
|
Chris@16
|
472 struct ratio_string<deca, char>
|
Chris@16
|
473 {
|
Chris@16
|
474 static std::string symbol() {return std::string("da");}
|
Chris@16
|
475 static std::string prefix() {return std::string("deca");}
|
Chris@16
|
476 };
|
Chris@16
|
477
|
Chris@16
|
478 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
479
|
Chris@16
|
480 template <>
|
Chris@16
|
481 struct ratio_string<deca, char16_t>
|
Chris@16
|
482 {
|
Chris@16
|
483 static std::u16string symbol() {return std::u16string(u"da");}
|
Chris@16
|
484 static std::u16string prefix() {return std::u16string(u"deca");}
|
Chris@16
|
485 };
|
Chris@16
|
486
|
Chris@16
|
487 template <>
|
Chris@16
|
488 struct ratio_string<deca, char32_t>
|
Chris@16
|
489 {
|
Chris@16
|
490 static std::u32string symbol() {return std::u32string(U"da");}
|
Chris@16
|
491 static std::u32string prefix() {return std::u32string(U"deca");}
|
Chris@16
|
492 };
|
Chris@16
|
493
|
Chris@16
|
494 #endif
|
Chris@16
|
495
|
Chris@16
|
496 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
497 template <>
|
Chris@16
|
498 struct ratio_string<deca, wchar_t>
|
Chris@16
|
499 {
|
Chris@16
|
500 static std::wstring symbol() {return std::wstring(L"da");}
|
Chris@16
|
501 static std::wstring prefix() {return std::wstring(L"deca");}
|
Chris@16
|
502 };
|
Chris@16
|
503 #endif
|
Chris@16
|
504 #endif
|
Chris@16
|
505
|
Chris@16
|
506 // hecto
|
Chris@16
|
507
|
Chris@16
|
508 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
509 template <typename CharT>
|
Chris@16
|
510 struct ratio_string<hecto, CharT> :
|
Chris@16
|
511 ratio_detail::ratio_string_static<hecto,CharT>
|
Chris@16
|
512 {};
|
Chris@16
|
513
|
Chris@16
|
514 #else
|
Chris@16
|
515 template <>
|
Chris@16
|
516 struct ratio_string<hecto, char>
|
Chris@16
|
517 {
|
Chris@16
|
518 static std::string symbol() {return std::string(1, 'h');}
|
Chris@16
|
519 static std::string prefix() {return std::string("hecto");}
|
Chris@16
|
520 };
|
Chris@16
|
521
|
Chris@16
|
522 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
523
|
Chris@16
|
524 template <>
|
Chris@16
|
525 struct ratio_string<hecto, char16_t>
|
Chris@16
|
526 {
|
Chris@16
|
527 static std::u16string symbol() {return std::u16string(1, u'h');}
|
Chris@16
|
528 static std::u16string prefix() {return std::u16string(u"hecto");}
|
Chris@16
|
529 };
|
Chris@16
|
530
|
Chris@16
|
531 template <>
|
Chris@16
|
532 struct ratio_string<hecto, char32_t>
|
Chris@16
|
533 {
|
Chris@16
|
534 static std::u32string symbol() {return std::u32string(1, U'h');}
|
Chris@16
|
535 static std::u32string prefix() {return std::u32string(U"hecto");}
|
Chris@16
|
536 };
|
Chris@16
|
537
|
Chris@16
|
538 #endif
|
Chris@16
|
539
|
Chris@16
|
540 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
541 template <>
|
Chris@16
|
542 struct ratio_string<hecto, wchar_t>
|
Chris@16
|
543 {
|
Chris@16
|
544 static std::wstring symbol() {return std::wstring(1, L'h');}
|
Chris@16
|
545 static std::wstring prefix() {return std::wstring(L"hecto");}
|
Chris@16
|
546 };
|
Chris@16
|
547 #endif
|
Chris@16
|
548 #endif
|
Chris@16
|
549
|
Chris@16
|
550 // kilo
|
Chris@16
|
551
|
Chris@16
|
552 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
553 template <typename CharT>
|
Chris@16
|
554 struct ratio_string<kilo, CharT> :
|
Chris@16
|
555 ratio_detail::ratio_string_static<kilo,CharT>
|
Chris@16
|
556 {};
|
Chris@16
|
557
|
Chris@16
|
558 #else
|
Chris@16
|
559 template <>
|
Chris@16
|
560 struct ratio_string<kilo, char>
|
Chris@16
|
561 {
|
Chris@16
|
562 static std::string symbol() {return std::string(1, 'k');}
|
Chris@16
|
563 static std::string prefix() {return std::string("kilo");}
|
Chris@16
|
564 };
|
Chris@16
|
565
|
Chris@16
|
566 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
567
|
Chris@16
|
568 template <>
|
Chris@16
|
569 struct ratio_string<kilo, char16_t>
|
Chris@16
|
570 {
|
Chris@16
|
571 static std::u16string symbol() {return std::u16string(1, u'k');}
|
Chris@16
|
572 static std::u16string prefix() {return std::u16string(u"kilo");}
|
Chris@16
|
573 };
|
Chris@16
|
574
|
Chris@16
|
575 template <>
|
Chris@16
|
576 struct ratio_string<kilo, char32_t>
|
Chris@16
|
577 {
|
Chris@16
|
578 static std::u32string symbol() {return std::u32string(1, U'k');}
|
Chris@16
|
579 static std::u32string prefix() {return std::u32string(U"kilo");}
|
Chris@16
|
580 };
|
Chris@16
|
581
|
Chris@16
|
582 #endif
|
Chris@16
|
583
|
Chris@16
|
584 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
585 template <>
|
Chris@16
|
586 struct ratio_string<kilo, wchar_t>
|
Chris@16
|
587 {
|
Chris@16
|
588 static std::wstring symbol() {return std::wstring(1, L'k');}
|
Chris@16
|
589 static std::wstring prefix() {return std::wstring(L"kilo");}
|
Chris@16
|
590 };
|
Chris@16
|
591 #endif
|
Chris@16
|
592 #endif
|
Chris@16
|
593
|
Chris@16
|
594 // mega
|
Chris@16
|
595
|
Chris@16
|
596 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
597 template <typename CharT>
|
Chris@16
|
598 struct ratio_string<mega, CharT> :
|
Chris@16
|
599 ratio_detail::ratio_string_static<mega,CharT>
|
Chris@16
|
600 {};
|
Chris@16
|
601
|
Chris@16
|
602 #else
|
Chris@16
|
603
|
Chris@16
|
604 template <>
|
Chris@16
|
605 struct ratio_string<mega, char>
|
Chris@16
|
606 {
|
Chris@16
|
607 static std::string symbol() {return std::string(1, 'M');}
|
Chris@16
|
608 static std::string prefix() {return std::string("mega");}
|
Chris@16
|
609 };
|
Chris@16
|
610
|
Chris@16
|
611 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
612
|
Chris@16
|
613 template <>
|
Chris@16
|
614 struct ratio_string<mega, char16_t>
|
Chris@16
|
615 {
|
Chris@16
|
616 static std::u16string symbol() {return std::u16string(1, u'M');}
|
Chris@16
|
617 static std::u16string prefix() {return std::u16string(u"mega");}
|
Chris@16
|
618 };
|
Chris@16
|
619
|
Chris@16
|
620 template <>
|
Chris@16
|
621 struct ratio_string<mega, char32_t>
|
Chris@16
|
622 {
|
Chris@16
|
623 static std::u32string symbol() {return std::u32string(1, U'M');}
|
Chris@16
|
624 static std::u32string prefix() {return std::u32string(U"mega");}
|
Chris@16
|
625 };
|
Chris@16
|
626
|
Chris@16
|
627 #endif
|
Chris@16
|
628
|
Chris@16
|
629 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
630 template <>
|
Chris@16
|
631 struct ratio_string<mega, wchar_t>
|
Chris@16
|
632 {
|
Chris@16
|
633 static std::wstring symbol() {return std::wstring(1, L'M');}
|
Chris@16
|
634 static std::wstring prefix() {return std::wstring(L"mega");}
|
Chris@16
|
635 };
|
Chris@16
|
636 #endif
|
Chris@16
|
637 #endif
|
Chris@16
|
638
|
Chris@16
|
639 // giga
|
Chris@16
|
640
|
Chris@16
|
641 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
642 template <typename CharT>
|
Chris@16
|
643 struct ratio_string<giga, CharT> :
|
Chris@16
|
644 ratio_detail::ratio_string_static<giga,CharT>
|
Chris@16
|
645 {};
|
Chris@16
|
646
|
Chris@16
|
647 #else
|
Chris@16
|
648
|
Chris@16
|
649 template <>
|
Chris@16
|
650 struct ratio_string<giga, char>
|
Chris@16
|
651 {
|
Chris@16
|
652 static std::string symbol() {return std::string(1, 'G');}
|
Chris@16
|
653 static std::string prefix() {return std::string("giga");}
|
Chris@16
|
654 };
|
Chris@16
|
655
|
Chris@16
|
656 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
657
|
Chris@16
|
658 template <>
|
Chris@16
|
659 struct ratio_string<giga, char16_t>
|
Chris@16
|
660 {
|
Chris@16
|
661 static std::u16string symbol() {return std::u16string(1, u'G');}
|
Chris@16
|
662 static std::u16string prefix() {return std::u16string(u"giga");}
|
Chris@16
|
663 };
|
Chris@16
|
664
|
Chris@16
|
665 template <>
|
Chris@16
|
666 struct ratio_string<giga, char32_t>
|
Chris@16
|
667 {
|
Chris@16
|
668 static std::u32string symbol() {return std::u32string(1, U'G');}
|
Chris@16
|
669 static std::u32string prefix() {return std::u32string(U"giga");}
|
Chris@16
|
670 };
|
Chris@16
|
671
|
Chris@16
|
672 #endif
|
Chris@16
|
673
|
Chris@16
|
674 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
675 template <>
|
Chris@16
|
676 struct ratio_string<giga, wchar_t>
|
Chris@16
|
677 {
|
Chris@16
|
678 static std::wstring symbol() {return std::wstring(1, L'G');}
|
Chris@16
|
679 static std::wstring prefix() {return std::wstring(L"giga");}
|
Chris@16
|
680 };
|
Chris@16
|
681 #endif
|
Chris@16
|
682 #endif
|
Chris@16
|
683
|
Chris@16
|
684 // tera
|
Chris@16
|
685
|
Chris@16
|
686 //template <>
|
Chris@16
|
687 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
688 template <typename CharT>
|
Chris@16
|
689 struct ratio_string<tera, CharT> :
|
Chris@16
|
690 ratio_detail::ratio_string_static<tera,CharT>
|
Chris@16
|
691 {};
|
Chris@16
|
692
|
Chris@16
|
693 #else
|
Chris@16
|
694 template <>
|
Chris@16
|
695 struct ratio_string<tera, char>
|
Chris@16
|
696 {
|
Chris@16
|
697 static std::string symbol() {return std::string(1, 'T');}
|
Chris@16
|
698 static std::string prefix() {return std::string("tera");}
|
Chris@16
|
699 };
|
Chris@16
|
700
|
Chris@16
|
701 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
702
|
Chris@16
|
703 template <>
|
Chris@16
|
704 struct ratio_string<tera, char16_t>
|
Chris@16
|
705 {
|
Chris@16
|
706 static std::u16string symbol() {return std::u16string(1, u'T');}
|
Chris@16
|
707 static std::u16string prefix() {return std::u16string(u"tera");}
|
Chris@16
|
708 };
|
Chris@16
|
709
|
Chris@16
|
710 template <>
|
Chris@16
|
711 struct ratio_string<tera, char32_t>
|
Chris@16
|
712 {
|
Chris@16
|
713 static std::u32string symbol() {return std::u32string(1, U'T');}
|
Chris@16
|
714 static std::u32string prefix() {return std::u32string(U"tera");}
|
Chris@16
|
715 };
|
Chris@16
|
716
|
Chris@16
|
717 #endif
|
Chris@16
|
718
|
Chris@16
|
719 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
720 template <>
|
Chris@16
|
721 struct ratio_string<tera, wchar_t>
|
Chris@16
|
722 {
|
Chris@16
|
723 static std::wstring symbol() {return std::wstring(1, L'T');}
|
Chris@16
|
724 static std::wstring prefix() {return std::wstring(L"tera");}
|
Chris@16
|
725 };
|
Chris@16
|
726 #endif
|
Chris@16
|
727 #endif
|
Chris@16
|
728
|
Chris@16
|
729 // peta
|
Chris@16
|
730
|
Chris@16
|
731 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
732 template <typename CharT>
|
Chris@16
|
733 struct ratio_string<peta, CharT> :
|
Chris@16
|
734 ratio_detail::ratio_string_static<peta,CharT>
|
Chris@16
|
735 {};
|
Chris@16
|
736
|
Chris@16
|
737 #else
|
Chris@16
|
738 template <>
|
Chris@16
|
739 struct ratio_string<peta, char>
|
Chris@16
|
740 {
|
Chris@16
|
741 static std::string symbol() {return std::string(1, 'P');}
|
Chris@16
|
742 static std::string prefix() {return std::string("peta");}
|
Chris@16
|
743 };
|
Chris@16
|
744
|
Chris@16
|
745 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
746
|
Chris@16
|
747 template <>
|
Chris@16
|
748 struct ratio_string<peta, char16_t>
|
Chris@16
|
749 {
|
Chris@16
|
750 static std::u16string symbol() {return std::u16string(1, u'P');}
|
Chris@16
|
751 static std::u16string prefix() {return std::u16string(u"peta");}
|
Chris@16
|
752 };
|
Chris@16
|
753
|
Chris@16
|
754 template <>
|
Chris@16
|
755 struct ratio_string<peta, char32_t>
|
Chris@16
|
756 {
|
Chris@16
|
757 static std::u32string symbol() {return std::u32string(1, U'P');}
|
Chris@16
|
758 static std::u32string prefix() {return std::u32string(U"peta");}
|
Chris@16
|
759 };
|
Chris@16
|
760
|
Chris@16
|
761 #endif
|
Chris@16
|
762
|
Chris@16
|
763 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
764 template <>
|
Chris@16
|
765 struct ratio_string<peta, wchar_t>
|
Chris@16
|
766 {
|
Chris@16
|
767 static std::wstring symbol() {return std::wstring(1, L'P');}
|
Chris@16
|
768 static std::wstring prefix() {return std::wstring(L"peta");}
|
Chris@16
|
769 };
|
Chris@16
|
770 #endif
|
Chris@16
|
771 #endif
|
Chris@16
|
772
|
Chris@16
|
773 // exa
|
Chris@16
|
774
|
Chris@16
|
775 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@16
|
776 template <typename CharT>
|
Chris@16
|
777 struct ratio_string<exa, CharT> :
|
Chris@16
|
778 ratio_detail::ratio_string_static<exa,CharT>
|
Chris@16
|
779 {};
|
Chris@16
|
780
|
Chris@16
|
781 #else
|
Chris@16
|
782 template <>
|
Chris@16
|
783 struct ratio_string<exa, char>
|
Chris@16
|
784 {
|
Chris@16
|
785 static std::string symbol() {return std::string(1, 'E');}
|
Chris@16
|
786 static std::string prefix() {return std::string("exa");}
|
Chris@16
|
787 };
|
Chris@16
|
788
|
Chris@16
|
789 #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@16
|
790
|
Chris@16
|
791 template <>
|
Chris@16
|
792 struct ratio_string<exa, char16_t>
|
Chris@16
|
793 {
|
Chris@16
|
794 static std::u16string symbol() {return std::u16string(1, u'E');}
|
Chris@16
|
795 static std::u16string prefix() {return std::u16string(u"exa");}
|
Chris@16
|
796 };
|
Chris@16
|
797
|
Chris@16
|
798 template <>
|
Chris@16
|
799 struct ratio_string<exa, char32_t>
|
Chris@16
|
800 {
|
Chris@16
|
801 static std::u32string symbol() {return std::u32string(1, U'E');}
|
Chris@16
|
802 static std::u32string prefix() {return std::u32string(U"exa");}
|
Chris@16
|
803 };
|
Chris@16
|
804
|
Chris@16
|
805 #endif
|
Chris@16
|
806
|
Chris@16
|
807 #ifndef BOOST_NO_STD_WSTRING
|
Chris@16
|
808 template <>
|
Chris@16
|
809 struct ratio_string<exa, wchar_t>
|
Chris@16
|
810 {
|
Chris@16
|
811 static std::wstring symbol() {return std::wstring(1, L'E');}
|
Chris@16
|
812 static std::wstring prefix() {return std::wstring(L"exa");}
|
Chris@16
|
813 };
|
Chris@16
|
814 #endif
|
Chris@16
|
815 #endif
|
Chris@16
|
816
|
Chris@101
|
817
|
Chris@101
|
818 #ifdef BOOST_RATIO_EXTENSIONS
|
Chris@101
|
819
|
Chris@101
|
820 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
821 template <typename CharT>
|
Chris@101
|
822 struct ratio_string<kibi, CharT> :
|
Chris@101
|
823 ratio_detail::ratio_string_static<kibi,CharT>
|
Chris@101
|
824 {};
|
Chris@101
|
825
|
Chris@101
|
826 #else
|
Chris@101
|
827 template <>
|
Chris@101
|
828 struct ratio_string<kibi, char>
|
Chris@101
|
829 {
|
Chris@101
|
830 static std::string symbol() {return std::string("Ki");}
|
Chris@101
|
831 static std::string prefix() {return std::string("kibi");}
|
Chris@101
|
832 };
|
Chris@101
|
833
|
Chris@101
|
834 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
835
|
Chris@101
|
836 template <>
|
Chris@101
|
837 struct ratio_string<kibi, char16_t>
|
Chris@101
|
838 {
|
Chris@101
|
839 static std::u16string symbol() {return std::u16string(u"Ki");}
|
Chris@101
|
840 static std::u16string prefix() {return std::u16string(u"kibi");}
|
Chris@101
|
841 };
|
Chris@101
|
842
|
Chris@101
|
843 template <>
|
Chris@101
|
844 struct ratio_string<kibi, char32_t>
|
Chris@101
|
845 {
|
Chris@101
|
846 static std::u32string symbol() {return std::u32string(U"Ki");}
|
Chris@101
|
847 static std::u32string prefix() {return std::u32string(U"kibi");}
|
Chris@101
|
848 };
|
Chris@101
|
849
|
Chris@101
|
850 #endif
|
Chris@101
|
851
|
Chris@101
|
852 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
853 template <>
|
Chris@101
|
854 struct ratio_string<kibi, wchar_t>
|
Chris@101
|
855 {
|
Chris@101
|
856 static std::wstring symbol() {return std::wstring(L"Ki");}
|
Chris@101
|
857 static std::wstring prefix() {return std::wstring(L"kibi");}
|
Chris@101
|
858 };
|
Chris@101
|
859 #endif
|
Chris@101
|
860 #endif
|
Chris@101
|
861
|
Chris@101
|
862 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
863 template <typename CharT>
|
Chris@101
|
864 struct ratio_string<mebi, CharT> :
|
Chris@101
|
865 ratio_detail::ratio_string_static<mebi,CharT>
|
Chris@101
|
866 {};
|
Chris@101
|
867
|
Chris@101
|
868 #else
|
Chris@101
|
869 template <>
|
Chris@101
|
870 struct ratio_string<mebi, char>
|
Chris@101
|
871 {
|
Chris@101
|
872 static std::string symbol() {return std::string("Mi");}
|
Chris@101
|
873 static std::string prefix() {return std::string("mebi");}
|
Chris@101
|
874 };
|
Chris@101
|
875
|
Chris@101
|
876 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
877
|
Chris@101
|
878 template <>
|
Chris@101
|
879 struct ratio_string<mebi, char16_t>
|
Chris@101
|
880 {
|
Chris@101
|
881 static std::u16string symbol() {return std::u16string(u"Mi");}
|
Chris@101
|
882 static std::u16string prefix() {return std::u16string(u"mebi");}
|
Chris@101
|
883 };
|
Chris@101
|
884
|
Chris@101
|
885 template <>
|
Chris@101
|
886 struct ratio_string<mebi, char32_t>
|
Chris@101
|
887 {
|
Chris@101
|
888 static std::u32string symbol() {return std::u32string(U"Mi");}
|
Chris@101
|
889 static std::u32string prefix() {return std::u32string(U"mebi");}
|
Chris@101
|
890 };
|
Chris@101
|
891
|
Chris@101
|
892 #endif
|
Chris@101
|
893
|
Chris@101
|
894 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
895 template <>
|
Chris@101
|
896 struct ratio_string<mebi, wchar_t>
|
Chris@101
|
897 {
|
Chris@101
|
898 static std::wstring symbol() {return std::wstring(L"Mi");}
|
Chris@101
|
899 static std::wstring prefix() {return std::wstring(L"mebi");}
|
Chris@101
|
900 };
|
Chris@101
|
901 #endif
|
Chris@101
|
902 #endif
|
Chris@101
|
903
|
Chris@101
|
904 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
905 template <typename CharT>
|
Chris@101
|
906 struct ratio_string<gibi, CharT> :
|
Chris@101
|
907 ratio_detail::ratio_string_static<gibi,CharT>
|
Chris@101
|
908 {};
|
Chris@101
|
909
|
Chris@101
|
910 #else
|
Chris@101
|
911 template <>
|
Chris@101
|
912 struct ratio_string<gibi, char>
|
Chris@101
|
913 {
|
Chris@101
|
914 static std::string symbol() {return std::string("Gi");}
|
Chris@101
|
915 static std::string prefix() {return std::string("gibi");}
|
Chris@101
|
916 };
|
Chris@101
|
917
|
Chris@101
|
918 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
919
|
Chris@101
|
920 template <>
|
Chris@101
|
921 struct ratio_string<gibi, char16_t>
|
Chris@101
|
922 {
|
Chris@101
|
923 static std::u16string symbol() {return std::u16string(u"Gi");}
|
Chris@101
|
924 static std::u16string prefix() {return std::u16string(u"gibi");}
|
Chris@101
|
925 };
|
Chris@101
|
926
|
Chris@101
|
927 template <>
|
Chris@101
|
928 struct ratio_string<gibi, char32_t>
|
Chris@101
|
929 {
|
Chris@101
|
930 static std::u32string symbol() {return std::u32string(U"Gi");}
|
Chris@101
|
931 static std::u32string prefix() {return std::u32string(U"gibi");}
|
Chris@101
|
932 };
|
Chris@101
|
933
|
Chris@101
|
934 #endif
|
Chris@101
|
935
|
Chris@101
|
936 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
937 template <>
|
Chris@101
|
938 struct ratio_string<gibi, wchar_t>
|
Chris@101
|
939 {
|
Chris@101
|
940 static std::wstring symbol() {return std::wstring(L"Gi");}
|
Chris@101
|
941 static std::wstring prefix() {return std::wstring(L"gibi");}
|
Chris@101
|
942 };
|
Chris@101
|
943 #endif
|
Chris@101
|
944 #endif
|
Chris@101
|
945
|
Chris@101
|
946 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
947 template <typename CharT>
|
Chris@101
|
948 struct ratio_string<tebi, CharT> :
|
Chris@101
|
949 ratio_detail::ratio_string_static<tebi,CharT>
|
Chris@101
|
950 {};
|
Chris@101
|
951
|
Chris@101
|
952 #else
|
Chris@101
|
953 template <>
|
Chris@101
|
954 struct ratio_string<tebi, char>
|
Chris@101
|
955 {
|
Chris@101
|
956 static std::string symbol() {return std::string("Ti");}
|
Chris@101
|
957 static std::string prefix() {return std::string("tebi");}
|
Chris@101
|
958 };
|
Chris@101
|
959
|
Chris@101
|
960 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
961
|
Chris@101
|
962 template <>
|
Chris@101
|
963 struct ratio_string<tebi, char16_t>
|
Chris@101
|
964 {
|
Chris@101
|
965 static std::u16string symbol() {return std::u16string(u"Ti");}
|
Chris@101
|
966 static std::u16string prefix() {return std::u16string(u"tebi");}
|
Chris@101
|
967 };
|
Chris@101
|
968
|
Chris@101
|
969 template <>
|
Chris@101
|
970 struct ratio_string<tebi, char32_t>
|
Chris@101
|
971 {
|
Chris@101
|
972 static std::u32string symbol() {return std::u32string(U"Ti");}
|
Chris@101
|
973 static std::u32string prefix() {return std::u32string(U"tebi");}
|
Chris@101
|
974 };
|
Chris@101
|
975
|
Chris@101
|
976 #endif
|
Chris@101
|
977
|
Chris@101
|
978 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
979 template <>
|
Chris@101
|
980 struct ratio_string<tebi, wchar_t>
|
Chris@101
|
981 {
|
Chris@101
|
982 static std::wstring symbol() {return std::wstring(L"Ti");}
|
Chris@101
|
983 static std::wstring prefix() {return std::wstring(L"tebi");}
|
Chris@101
|
984 };
|
Chris@101
|
985 #endif
|
Chris@101
|
986 #endif
|
Chris@101
|
987
|
Chris@101
|
988 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
989 template <typename CharT>
|
Chris@101
|
990 struct ratio_string<pebi, CharT> :
|
Chris@101
|
991 ratio_detail::ratio_string_static<pebi,CharT>
|
Chris@101
|
992 {};
|
Chris@101
|
993
|
Chris@101
|
994 #else
|
Chris@101
|
995 template <>
|
Chris@101
|
996 struct ratio_string<pebi, char>
|
Chris@101
|
997 {
|
Chris@101
|
998 static std::string symbol() {return std::string("Pi");}
|
Chris@101
|
999 static std::string prefix() {return std::string("pebi");}
|
Chris@101
|
1000 };
|
Chris@101
|
1001
|
Chris@101
|
1002 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
1003
|
Chris@101
|
1004 template <>
|
Chris@101
|
1005 struct ratio_string<pebi, char16_t>
|
Chris@101
|
1006 {
|
Chris@101
|
1007 static std::u16string symbol() {return std::u16string(u"Pi");}
|
Chris@101
|
1008 static std::u16string prefix() {return std::u16string(u"pebi");}
|
Chris@101
|
1009 };
|
Chris@101
|
1010
|
Chris@101
|
1011 template <>
|
Chris@101
|
1012 struct ratio_string<pebi, char32_t>
|
Chris@101
|
1013 {
|
Chris@101
|
1014 static std::u32string symbol() {return std::u32string(U"Pi");}
|
Chris@101
|
1015 static std::u32string prefix() {return std::u32string(U"pebi");}
|
Chris@101
|
1016 };
|
Chris@101
|
1017
|
Chris@101
|
1018 #endif
|
Chris@101
|
1019
|
Chris@101
|
1020 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
1021 template <>
|
Chris@101
|
1022 struct ratio_string<pebi, wchar_t>
|
Chris@101
|
1023 {
|
Chris@101
|
1024 static std::wstring symbol() {return std::wstring(L"Pi");}
|
Chris@101
|
1025 static std::wstring prefix() {return std::wstring(L"pebi");}
|
Chris@101
|
1026 };
|
Chris@101
|
1027 #endif
|
Chris@101
|
1028 #endif
|
Chris@101
|
1029
|
Chris@101
|
1030 #ifdef BOOST_RATIO_HAS_STATIC_STRING
|
Chris@101
|
1031 template <typename CharT>
|
Chris@101
|
1032 struct ratio_string<exbi, CharT> :
|
Chris@101
|
1033 ratio_detail::ratio_string_static<exbi,CharT>
|
Chris@101
|
1034 {};
|
Chris@101
|
1035
|
Chris@101
|
1036 #else
|
Chris@101
|
1037 template <>
|
Chris@101
|
1038 struct ratio_string<exbi, char>
|
Chris@101
|
1039 {
|
Chris@101
|
1040 static std::string symbol() {return std::string("Ei");}
|
Chris@101
|
1041 static std::string prefix() {return std::string("exbi");}
|
Chris@101
|
1042 };
|
Chris@101
|
1043
|
Chris@101
|
1044 #if BOOST_RATIO_HAS_UNICODE_SUPPORT
|
Chris@101
|
1045
|
Chris@101
|
1046 template <>
|
Chris@101
|
1047 struct ratio_string<exbi, char16_t>
|
Chris@101
|
1048 {
|
Chris@101
|
1049 static std::u16string symbol() {return std::u16string(u"Ei");}
|
Chris@101
|
1050 static std::u16string prefix() {return std::u16string(u"exbi");}
|
Chris@101
|
1051 };
|
Chris@101
|
1052
|
Chris@101
|
1053 template <>
|
Chris@101
|
1054 struct ratio_string<exbi, char32_t>
|
Chris@101
|
1055 {
|
Chris@101
|
1056 static std::u32string symbol() {return std::u32string(U"Ei");}
|
Chris@101
|
1057 static std::u32string prefix() {return std::u32string(U"exbi");}
|
Chris@101
|
1058 };
|
Chris@101
|
1059
|
Chris@101
|
1060 #endif
|
Chris@101
|
1061
|
Chris@101
|
1062 #ifndef BOOST_NO_STD_WSTRING
|
Chris@101
|
1063 template <>
|
Chris@101
|
1064 struct ratio_string<exbi, wchar_t>
|
Chris@101
|
1065 {
|
Chris@101
|
1066 static std::wstring symbol() {return std::wstring(L"Ei");}
|
Chris@101
|
1067 static std::wstring prefix() {return std::wstring(L"exbi");}
|
Chris@101
|
1068 };
|
Chris@101
|
1069 #endif
|
Chris@101
|
1070 #endif
|
Chris@101
|
1071 #endif
|
Chris@101
|
1072
|
Chris@16
|
1073 }
|
Chris@16
|
1074
|
Chris@16
|
1075 #endif // BOOST_RATIO_PROVIDES_DEPRECATED_FEATURES_SINCE_V2_0_0
|
Chris@16
|
1076 #endif // BOOST_RATIO_RATIO_IO_HPP
|