xtd 0.2.0
Loading...
Searching...
No Matches
to_string.h
Go to the documentation of this file.
1
4#pragma once
6#define __XTD_CORE_INTERNAL__
7#include "internal/__binary_formatter.h"
8#include "internal/__boolean_formatter.h"
9#include "internal/__character_formatter.h"
10#include "internal/__currency_formatter.h"
11#include "internal/__date_time_formatter.h"
12#include "internal/__duration_formatter.h"
13#include "internal/__enum_formatter.h"
14#include "internal/__fixed_point_formatter.h"
15#include "internal/__natural_formatter.h"
16#include "internal/__numeric_formatter.h"
17#include "internal/__string_formatter.h"
18#undef __XTD_CORE_INTERNAL__
20#include "types.h"
21#include <string>
22
24namespace xtd {
35 template<typename value_t>
36 inline std::string to_string(const value_t& value, const std::string& fmt, const std::locale& loc) {return __to_string_enum(value, fmt, loc, std::is_enum<value_t>());}
37
48 template<>
49 inline std::string to_string(const bool& value, const std::string& fmt, const std::locale& loc) {return __boolean_formatter(fmt, value, loc);}
50
61 template<>
62 inline std::string to_string(const sbyte& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
63
74 template<>
75 inline std::string to_string(const char& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
76
87 template<>
88 inline std::string to_string(const unsigned char& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
89
100 template<>
101 inline std::string to_string(const short& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
102
113 template<>
114 inline std::string to_string(const unsigned short& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
115
126 template<>
127 inline std::string to_string(const int& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
128
139 template<>
140 inline std::string to_string(const unsigned int& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
141
152 template<>
153 inline std::string to_string(const long& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
154
165 template<>
166 inline std::string to_string(const unsigned long& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
167
178 template<>
179 inline std::string to_string(const long long& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
180
191 template<>
192 inline std::string to_string(const unsigned long long& value, const std::string& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
193
204 template<>
205 inline std::string to_string(const float& value, const std::string& fmt, const std::locale& loc) {return __fixed_point_formatter(fmt, value, loc);}
206
217 template<>
218 inline std::string to_string(const double& value, const std::string& fmt, const std::locale& loc) {return __fixed_point_formatter(fmt, value, loc);}
219
230 template<>
231 inline std::string to_string(const long double& value, const std::string& fmt, const std::locale& loc) {return __fixed_point_formatter(fmt, value, loc);}
232
243 template<>
244 inline std::string to_string(const std::chrono::system_clock::time_point& value, const std::string& fmt, const std::locale& loc) {return __date_time_formatter(fmt, std::chrono::system_clock::to_time_t(value), std::chrono::duration_cast<std::chrono::nanoseconds>(value.time_since_epoch()).count() % 1000000000, loc);}
245
256 template<>
257 inline std::string to_string(const std::tm& value, const std::string& fmt, const std::locale& loc) {return __date_time_formatter(fmt, value, 0, loc);}
258
269 template<typename type_t, typename Period>
270 inline std::string to_string(const std::chrono::duration<type_t, Period>& value, const std::string& fmt, const std::locale& loc) {return __duration_formatter(fmt, value, loc);}
271
272#if defined(__cpp_lib_char8_t)
283 template<>
284 inline std::string to_string(const char8& value, const std::string& fmt, const std::locale& loc) {return __character_formatter(fmt, value, loc);}
285#endif
286
297 template<>
298 inline std::string to_string(const char16& value, const std::string& fmt, const std::locale& loc) {return __character_formatter(fmt, value, loc);}
299
310 template<>
311 inline std::string to_string(const char32& value, const std::string& fmt, const std::locale& loc) {return __character_formatter(fmt, value, loc);}
312
323 template<>
324 inline std::string to_string(const wchar& value, const std::string& fmt, const std::locale& loc) {return __character_formatter(fmt, value, loc);}
325
327 std::string to_string(const char* value, const std::string& fmt, const std::locale& loc);
328#if defined(__cpp_lib_char8_t)
329 std::string to_string(const char8* value, const std::string& fmt, const std::locale& loc);
330#endif
331 std::string to_string(const char16* value, const std::string& fmt, const std::locale& loc);
332 std::string to_string(const char32* value, const std::string& fmt, const std::locale& loc);
333 std::string to_string(const wchar* value, const std::string& fmt, const std::locale& loc);
334 std::string to_string(const std::string& value, const std::string& fmt, const std::locale& loc);
335 std::string to_string(const xtd::ustring& value, const std::string& fmt, const std::locale& loc);
336#if defined(__cpp_lib_char8_t)
337 std::string to_string(const std::u8string& value, const std::string& fmt, const std::locale& loc);
338#endif
339 std::string to_string(const std::u16string& value, const std::string& fmt, const std::locale& loc);
340 std::string to_string(const std::u32string& value, const std::string& fmt, const std::locale& loc);
341 std::string to_string(const std::wstring& value, const std::string& fmt, const std::locale& loc);
343
353 template<typename value_t>
354 inline std::string to_string(const value_t& value, const std::string& fmt) {return to_string(value, fmt, std::locale());}
355
357 inline std::string to_string(const char* value, const std::string& fmt) {return to_string(value, fmt, std::locale());}
359
370 template<typename value_t>
371 inline std::wstring to_string(const value_t& value, const std::wstring& fmt, const std::locale& loc) {return __to_string_enum(value, fmt, loc, std::is_enum<value_t>());}
372
383 template<>
384 inline std::wstring to_string(const bool& value, const std::wstring& fmt, const std::locale& loc) {return __boolean_formatter(fmt, value, loc);}
385
396 template<>
397 inline std::wstring to_string(const sbyte& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
398
409 template<>
410 inline std::wstring to_string(const char& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
411
422 template<>
423 inline std::wstring to_string(const unsigned char& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
424
435 template<>
436 inline std::wstring to_string(const short& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
437
448 template<>
449 inline std::wstring to_string(const unsigned short& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
450
461 template<>
462 inline std::wstring to_string(const int& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
463
474 template<>
475 inline std::wstring to_string(const unsigned int& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
476
487 template<>
488 inline std::wstring to_string(const long& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
489
500 template<>
501 inline std::wstring to_string(const unsigned long& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
502
513 template<>
514 inline std::wstring to_string(const long long& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
515
526 template<>
527 inline std::wstring to_string(const unsigned long long& value, const std::wstring& fmt, const std::locale& loc) {return __numeric_formatter(fmt, value, loc);}
528
539 template<>
540 inline std::wstring to_string(const float& value, const std::wstring& fmt, const std::locale& loc) {return __fixed_point_formatter(fmt, value, loc);}
541
552 template<>
553 inline std::wstring to_string(const double& value, const std::wstring& fmt, const std::locale& loc) {return __fixed_point_formatter(fmt, value, loc);}
554
565 template<>
566 inline std::wstring to_string(const long double& value, const std::wstring& fmt, const std::locale& loc) {return __fixed_point_formatter(fmt, value, loc);}
567
578 template<>
579 inline std::wstring to_string(const std::chrono::system_clock::time_point& value, const std::wstring& fmt, const std::locale& loc) {return __date_time_formatter(fmt, std::chrono::system_clock::to_time_t(value), std::chrono::duration_cast<std::chrono::milliseconds>(value.time_since_epoch()).count() % 1000000000, loc);}
580
591 template<>
592 inline std::wstring to_string(const std::tm& value, const std::wstring& fmt, const std::locale& loc) {return __date_time_formatter(fmt, value, 0, loc);}
593
604 template<typename type_t, typename Period>
605 inline std::wstring to_string(const std::chrono::duration<type_t, Period>& value, const std::wstring& fmt, const std::locale& loc) {return __duration_formatter(fmt, value, loc);}
606
617 template<>
618 inline std::wstring to_string(const std::wstring& value, const std::wstring& fmt, const std::locale& loc) {return __string_formatter(fmt, value, loc);}
619
620#if defined(__cpp_lib_char8_t)
631 template<>
632 inline std::wstring to_string(const char8& value, const std::wstring& fmt, const std::locale& loc) {return __character_formatter(fmt, value, loc);}
633#endif
634
645 template<>
646 inline std::wstring to_string(const char16& value, const std::wstring& fmt, const std::locale& loc) {return __character_formatter(fmt, value, loc);}
647
658 template<>
659 inline std::wstring to_string(const char32& value, const std::wstring& fmt, const std::locale& loc) {return __character_formatter(fmt, value, loc);}
660
671 template<>
672 inline std::wstring to_string(const wchar& value, const std::wstring& fmt, const std::locale& loc) {return __character_formatter(fmt, value, loc);}
673
675 inline std::wstring to_string(const wchar* value, const std::wstring& fmt, const std::locale& loc) {return __string_formatter(fmt, value, loc);}
677
687 template<typename value_t>
688 inline std::wstring to_string(const value_t& value, const std::wstring& fmt) {return to_string(value, fmt, std::locale());}
689
691 inline std::wstring to_string(const wchar* value, const std::wstring& fmt) {return to_string(value, fmt, std::locale());}
693}
694
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
char8_t char8
Represents a 8-bit unicode character.
Definition types.h:64
wchar_t wchar
Represents a wide character.
Definition types.h:286
char16_t char16
Represents a 16-bit unicode character.
Definition types.h:76
int_least8_t sbyte
Represents a 8-bit signed integer.
Definition types.h:175
char32_t char32
Represents a 32-bit unicode character.
Definition types.h:87
std::string to_string(const date_time &value, const std::string &fmt, const std::locale &loc)
Convert a specified value into a string with specified format and locale.
Definition date_time.h:1080
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd fundamental types.