xtd - Reference Guide  0.1.1
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
as.h
Go to the documentation of this file.
1 #pragma once
4 #include <any>
5 #include <memory>
6 #include "convert.h"
7 #include "convert_pointer.h"
8 #include "convert_string.h"
10 #include "types.h"
11 
13 namespace xtd {
14  // ___________________________________________________________________________________________
15  // generic
16 
31  template<typename new_type_t>
32  new_type_t as(std::any value) {
33  try {
34  return any_cast<new_type_t>(value);
35  } catch (const std::exception& e) {
36  throw invalid_cast_exception(e.what(), csf_);
37  }
38  }
39 
53  template<typename new_type_t>
54  new_type_t as(bool value) {
55  return static_cast<new_type_t>(value);
56  }
57 
71  template<typename new_type_t>
72  new_type_t as(byte_t value) {
73  return static_cast<new_type_t>(value);
74  }
75 
89  template<typename new_type_t>
90  new_type_t as(char value) {
91  return static_cast<new_type_t>(value);
92  }
93 
107  template<typename new_type_t>
108  new_type_t as(char8_t value) {
109  return static_cast<new_type_t>(value);
110  }
111 
125  template<typename new_type_t>
126  new_type_t as(char16_t value) {
127  return static_cast<new_type_t>(value);
128  }
129 
143  template<typename new_type_t>
144  new_type_t as(char32_t value) {
145  return static_cast<new_type_t>(value);
146  }
147 
161  template<typename new_type_t>
162  new_type_t as(wchar_t value) {
163  return static_cast<new_type_t>(value);
164  }
165 
179  template<typename new_type_t>
180  new_type_t as(decimal_t value) {
181  return static_cast<new_type_t>(value);
182  }
183 
197  template<typename new_type_t>
198  new_type_t as(double value) {
199  return static_cast<new_type_t>(value);
200  }
201 
215  template<typename new_type_t>
216  new_type_t as(float value) {
217  return static_cast<new_type_t>(value);
218  }
219 
233  template<typename new_type_t>
234  new_type_t as(int16_t value) {
235  return static_cast<new_type_t>(value);
236  }
237 
251  template<typename new_type_t>
252  new_type_t as(int32_t value) {
253  return static_cast<new_type_t>(value);
254  }
255 
269  template<typename new_type_t>
270  new_type_t as(int64_t value) {
271  return static_cast<new_type_t>(value);
272  }
273 
287  template<typename new_type_t>
288  new_type_t as(llong_t value) {
289  return static_cast<new_type_t>(value);
290  }
291 
305  template<typename new_type_t>
306  new_type_t as(sbyte_t value) {
307  return static_cast<new_type_t>(value);
308  }
309 
323  template<typename new_type_t>
324  new_type_t as(uint16_t value) {
325  return static_cast<new_type_t>(value);
326  }
327 
341  template<typename new_type_t>
342  new_type_t as(uint32_t value) {
343  return static_cast<new_type_t>(value);
344  }
345 
359  template<typename new_type_t>
360  new_type_t as(uint64_t value) {
361  return static_cast<new_type_t>(value);
362  }
363 
377  template<typename new_type_t>
378  new_type_t as(ullong_t value) {
379  return static_cast<new_type_t>(value);
380  }
381 
396  template<typename new_type_t>
397  new_type_t as(const xtd::ustring& value) {
398  try {
399  return dynamic_cast<const new_type_t&>(value);
400  } catch (const std::exception& e) {
401  throw invalid_cast_exception(e.what(), csf_);
402  }
403  throw std::bad_cast();
404  }
405 
420  template<typename new_type_t>
421  new_type_t as(xtd::ustring& value) {
422  try {
423  return dynamic_cast<new_type_t&>(value);
424  } catch (const std::exception& e) {
425  throw invalid_cast_exception(e.what(), csf_);
426  }
427  throw std::bad_cast();
428  }
429 
431  template<typename new_type_t>
432  new_type_t as(const xtd::ustring& value, byte_t from_base) {
433  throw invalid_cast_exception(csf_);
434  }
435  template<typename new_type_t>
436  new_type_t as(byte_t value, byte_t from_base) {
437  throw invalid_cast_exception(csf_);
438  }
439  template<typename new_type_t>
440  new_type_t as(int16_t value, byte_t from_base) {
441  throw invalid_cast_exception(csf_);
442  }
443  template<typename new_type_t>
444  new_type_t as(int32_t value, byte_t from_base) {
445  throw invalid_cast_exception(csf_);
446  }
447  template<typename new_type_t>
448  new_type_t as(int64_t value, byte_t from_base) {
449  throw invalid_cast_exception(csf_);
450  }
451  template<typename new_type_t>
452  new_type_t as(llong_t value, byte_t from_base) {
453  throw invalid_cast_exception(csf_);
454  }
455  template<typename new_type_t>
456  new_type_t as(sbyte_t value, byte_t from_base) {
457  throw invalid_cast_exception(csf_);
458  }
459  template<typename new_type_t>
460  new_type_t as(uint16_t value, byte_t from_base) {
461  throw invalid_cast_exception(csf_);
462  }
463  template<typename new_type_t>
464  new_type_t as(uint32_t value, byte_t from_base) {
465  throw invalid_cast_exception(csf_);
466  }
467  template<typename new_type_t>
468  new_type_t as(uint64_t value, byte_t from_base) {
469  throw invalid_cast_exception(csf_);
470  }
471  template<typename new_type_t>
472  new_type_t as(ullong_t value, byte_t from_base) {
473  throw invalid_cast_exception(csf_);
474  }
476 
486  template<typename new_type_t>
487  new_type_t as(const std::string& value) {
488  try {
489  return dynamic_cast<const new_type_t&>(value);
490  } catch (const std::exception& e) {
491  throw invalid_cast_exception(e.what(), csf_);
492  }
493  throw std::bad_cast();
494  }
495 
505  template<typename new_type_t>
506  new_type_t as(std::string& value) {
507  try {
508  return dynamic_cast<new_type_t&>(value);
509  } catch (const std::exception& e) {
510  throw invalid_cast_exception(e.what(), csf_);
511  }
512  throw std::bad_cast();
513  }
514 
524  template<typename new_type_t>
525  new_type_t as(const std::u8string& value) {
526  try {
527  return dynamic_cast<const new_type_t&>(value);
528  } catch (const std::exception& e) {
529  throw invalid_cast_exception(e.what(), csf_);
530  }
531  throw std::bad_cast();
532  }
533 
543  template<typename new_type_t>
544  new_type_t as(std::u8string& value) {
545  try {
546  return dynamic_cast<new_type_t&>(value);
547  } catch (const std::exception& e) {
548  throw invalid_cast_exception(e.what(), csf_);
549  }
550  throw std::bad_cast();
551  }
552 
562  template<typename new_type_t>
563  new_type_t as(const std::u16string& value) {
564  try {
565  return dynamic_cast<const new_type_t&>(value);
566  } catch (const std::exception& e) {
567  throw invalid_cast_exception(e.what(), csf_);
568  }
569  throw std::bad_cast();
570  }
571 
581  template<typename new_type_t>
582  new_type_t as(std::u16string& value) {
583  try {
584  return dynamic_cast<new_type_t&>(value);
585  } catch (const std::exception& e) {
586  throw invalid_cast_exception(e.what(), csf_);
587  }
588  throw std::bad_cast();
589  }
590 
600  template<typename new_type_t>
601  new_type_t as(const std::u32string& value) {
602  try {
603  return dynamic_cast<const new_type_t&>(value);
604  } catch (const std::exception& e) {
605  throw invalid_cast_exception(e.what(), csf_);
606  }
607  throw std::bad_cast();
608  }
609 
619  template<typename new_type_t>
620  new_type_t as(std::u32string& value) {
621  try {
622  return dynamic_cast<new_type_t&>(value);
623  } catch (const std::exception& e) {
624  throw invalid_cast_exception(e.what(), csf_);
625  }
626  throw std::bad_cast();
627  }
628 
638  template<typename new_type_t>
639  new_type_t as(const std::wstring& value) {
640  try {
641  return dynamic_cast<const new_type_t&>(value);
642  } catch (const std::exception& e) {
643  throw invalid_cast_exception(e.what(), csf_);
644  }
645  throw std::bad_cast();
646  }
647 
657  template<typename new_type_t>
658  new_type_t as(std::wstring& value) {
659  try {
660  return dynamic_cast<new_type_t&>(value);
661  } catch (const std::exception& e) {
662  throw invalid_cast_exception(e.what(), csf_);
663  }
664  throw std::bad_cast();
665  }
666 
680  template<typename new_type_t>
681  new_type_t as(const char* value) {
682  return reinterpret_cast<new_type_t>(value);
683  }
684 
698  template<typename new_type_t>
699  new_type_t as(char* value) {
700  return reinterpret_cast<new_type_t>(value);
701  }
702 
716  template<typename new_type_t>
717  new_type_t as(const char8_t* value) {
718  return reinterpret_cast<new_type_t>(value);
719  }
720 
734  template<typename new_type_t>
735  new_type_t as(char8_t* value) {
736  return reinterpret_cast<new_type_t>(value);
737  }
738 
752  template<typename new_type_t>
753  new_type_t as(const char16_t* value) {
754  return reinterpret_cast<new_type_t>(value);
755  }
756 
770  template<typename new_type_t>
771  new_type_t as(char16_t* value) {
772  return reinterpret_cast<new_type_t>(value);
773  }
774 
788  template<typename new_type_t>
789  new_type_t as(const char32_t* value) {
790  return reinterpret_cast<new_type_t>(value);
791  }
792 
806  template<typename new_type_t>
807  new_type_t as(char32_t* value) {
808  return reinterpret_cast<new_type_t>(value);
809  }
810 
824  template<typename new_type_t>
825  new_type_t as(const wchar_t* value) {
826  return reinterpret_cast<new_type_t>(value);
827  }
828 
842  template<typename new_type_t>
843  new_type_t as(wchar_t* value) {
844  return reinterpret_cast<new_type_t>(value);
845  }
846 
847  // ___________________________________________________________________________________________
848  // xtd::convert specialization
849 
864  template<>
865  inline bool as<bool>(std::any value) {
866  return xtd::convert::to_boolean(value);
867  }
868 
882  template<>
883  inline bool as<bool>(bool value) {
884  return xtd::convert::to_boolean(value);
885  }
886 
900  template<>
901  inline bool as<bool>(byte_t value) {
902  return xtd::convert::to_boolean(value);
903  }
904 
919  template<>
920  inline bool as<bool>(char value) {
921  return xtd::convert::to_boolean(value);
922  }
923 
938  template<>
939  inline bool as<bool>(char8_t value) {
940  return xtd::convert::to_boolean(value);
941  }
942 
957  template<>
958  inline bool as<bool>(char16_t value) {
959  return xtd::convert::to_boolean(value);
960  }
961 
976  template<>
977  inline bool as<bool>(char32_t value) {
978  return xtd::convert::to_boolean(value);
979  }
980 
995  template<>
996  inline bool as<bool>(wchar_t value) {
997  return xtd::convert::to_boolean(value);
998  }
999 
1013  template<>
1014  inline bool as<bool>(decimal_t value) {
1015  return xtd::convert::to_boolean(value);
1016  }
1017 
1031  template<>
1032  inline bool as<bool>(double value) {
1033  return xtd::convert::to_boolean(value);
1034  }
1035 
1049  template<>
1050  inline bool as<bool>(float value) {
1051  return xtd::convert::to_boolean(value);
1052  }
1053 
1067  template<>
1068  inline bool as<bool>(int16_t value) {
1069  return xtd::convert::to_boolean(value);
1070  }
1071 
1085  template<>
1086  inline bool as<bool>(int32_t value) {
1087  return xtd::convert::to_boolean(value);
1088  }
1089 
1103  template<>
1104  inline bool as<bool>(int64_t value) {
1105  return xtd::convert::to_boolean(value);
1106  }
1107 
1121  template<>
1122  inline bool as<bool>(llong_t value) {
1123  return xtd::convert::to_boolean(value);
1124  }
1125 
1139  template<>
1140  inline bool as<bool>(sbyte_t value) {
1141  return xtd::convert::to_boolean(value);
1142  }
1143 
1157  template<>
1158  inline bool as<bool>(uint16_t value) {
1159  return xtd::convert::to_boolean(value);
1160  }
1161 
1175  template<>
1176  inline bool as<bool>(uint32_t value) {
1177  return xtd::convert::to_boolean(value);
1178  }
1179 
1193  template<>
1194  inline bool as<bool>(uint64_t value) {
1195  return xtd::convert::to_boolean(value);
1196  }
1197 
1211  template<>
1212  inline bool as<bool>(ullong_t value) {
1213  return xtd::convert::to_boolean(value);
1214  }
1215 
1230  template<>
1231  inline bool as<bool>(const xtd::ustring& value) {
1232  return xtd::convert::to_boolean(value);
1233  }
1234 
1249  template<>
1250  inline bool as<bool>(const std::string& value) {
1251  return xtd::convert::to_boolean(value);
1252  }
1253 
1268  template<>
1269  inline bool as<bool>(const std::u8string& value) {
1270  return xtd::convert::to_boolean(value);
1271  }
1272 
1287  template<>
1288  inline bool as<bool>(const std::u16string& value) {
1289  return xtd::convert::to_boolean(value);
1290  }
1291 
1306  template<>
1307  inline bool as<bool>(const std::u32string& value) {
1308  return xtd::convert::to_boolean(value);
1309  }
1310 
1325  template<>
1326  inline bool as<bool>(const std::wstring& value) {
1327  return xtd::convert::to_boolean(value);
1328  }
1329 
1344  template<>
1345  inline bool as<bool>(const char* value) {
1346  return xtd::convert::to_boolean(value);
1347  }
1348 
1363  template<>
1364  inline bool as<bool>(char* value) {
1365  return xtd::convert::to_boolean(value);
1366  }
1367 
1382  template<>
1383  inline bool as<bool>(const char8_t* value) {
1384  return xtd::convert::to_boolean(value);
1385  }
1386 
1401  template<>
1402  inline bool as<bool>(char8_t* value) {
1403  return xtd::convert::to_boolean(value);
1404  }
1405 
1420  template<>
1421  inline bool as<bool>(const char16_t* value) {
1422  return xtd::convert::to_boolean(value);
1423  }
1424 
1439  template<>
1440  inline bool as<bool>(char16_t* value) {
1441  return xtd::convert::to_boolean(value);
1442  }
1443 
1458  template<>
1459  inline bool as<bool>(const char32_t* value) {
1460  return xtd::convert::to_boolean(value);
1461  }
1462 
1477  template<>
1478  inline bool as<bool>(char32_t* value) {
1479  return xtd::convert::to_boolean(value);
1480  }
1481 
1496  template<>
1497  inline bool as<bool>(const wchar_t* value) {
1498  return xtd::convert::to_boolean(value);
1499  }
1500 
1515  template<>
1516  inline bool as<bool>(wchar_t* value) {
1517  return xtd::convert::to_boolean(value);
1518  }
1519 
1534  template<>
1535  inline byte_t as<byte_t>(std::any value) {
1536  return xtd::convert::to_byte(value);
1537  }
1538 
1552  template<>
1553  inline byte_t as<byte_t>(bool value) {
1554  return xtd::convert::to_byte(value);
1555  }
1556 
1570  template<>
1571  inline byte_t as<byte_t>(byte_t value) {
1572  return xtd::convert::to_byte(value);
1573  }
1574 
1589  template<>
1590  inline byte_t as<byte_t>(char value) {
1591  return xtd::convert::to_byte(value);
1592  }
1593 
1608  template<>
1609  inline byte_t as<byte_t>(char8_t value) {
1610  return xtd::convert::to_byte(value);
1611  }
1612 
1627  template<>
1628  inline byte_t as<byte_t>(char16_t value) {
1629  return xtd::convert::to_byte(value);
1630  }
1631 
1646  template<>
1647  inline byte_t as<byte_t>(char32_t value) {
1648  return xtd::convert::to_byte(value);
1649  }
1650 
1665  template<>
1666  inline byte_t as<byte_t>(wchar_t value) {
1667  return xtd::convert::to_byte(value);
1668  }
1669 
1683  template<>
1684  inline byte_t as<byte_t>(decimal_t value) {
1685  return xtd::convert::to_byte(value);
1686  }
1687 
1701  template<>
1702  inline byte_t as<byte_t>(double value) {
1703  return xtd::convert::to_byte(value);
1704  }
1705 
1719  template<>
1720  inline byte_t as<byte_t>(float value) {
1721  return xtd::convert::to_byte(value);
1722  }
1723 
1737  template<>
1738  inline byte_t as<byte_t>(int16_t value) {
1739  return xtd::convert::to_byte(value);
1740  }
1741 
1755  template<>
1756  inline byte_t as<byte_t>(int32_t value) {
1757  return xtd::convert::to_byte(value);
1758  }
1759 
1773  template<>
1774  inline byte_t as<byte_t>(int64_t value) {
1775  return xtd::convert::to_byte(value);
1776  }
1777 
1791  template<>
1792  inline byte_t as<byte_t>(llong_t value) {
1793  return xtd::convert::to_byte(value);
1794  }
1795 
1809  template<>
1810  inline byte_t as<byte_t>(sbyte_t value) {
1811  return xtd::convert::to_byte(value);
1812  }
1813 
1827  template<>
1828  inline byte_t as<byte_t>(uint16_t value) {
1829  return xtd::convert::to_byte(value);
1830  }
1831 
1845  template<>
1846  inline byte_t as<byte_t>(uint32_t value) {
1847  return xtd::convert::to_byte(value);
1848  }
1849 
1863  template<>
1864  inline byte_t as<byte_t>(uint64_t value) {
1865  return xtd::convert::to_byte(value);
1866  }
1867 
1881  template<>
1882  inline byte_t as<byte_t>(ullong_t value) {
1883  return xtd::convert::to_byte(value);
1884  }
1885 
1900  template<>
1901  inline byte_t as<byte_t>(const xtd::ustring& value) {
1902  return xtd::convert::to_byte(value);
1903  }
1904 
1920  template<>
1921  inline byte_t as<byte_t>(const xtd::ustring& value, byte_t from_base) {
1922  return xtd::convert::to_byte(value, from_base);
1923  }
1924 
1939  template<>
1940  inline byte_t as<byte_t>(const std::string& value) {
1941  return xtd::convert::to_byte(value);
1942  }
1943 
1958  template<>
1959  inline byte_t as<byte_t>(const std::u8string& value) {
1960  return xtd::convert::to_byte(value);
1961  }
1962 
1977  template<>
1978  inline byte_t as<byte_t>(const std::u16string& value) {
1979  return xtd::convert::to_byte(value);
1980  }
1981 
1996  template<>
1997  inline byte_t as<byte_t>(const std::u32string& value) {
1998  return xtd::convert::to_byte(value);
1999  }
2000 
2015  template<>
2016  inline byte_t as<byte_t>(const std::wstring& value) {
2017  return xtd::convert::to_byte(value);
2018  }
2019 
2034  template<>
2035  inline byte_t as<byte_t>(const char* value) {
2036  return xtd::convert::to_byte(value);
2037  }
2038 
2053  template<>
2054  inline byte_t as<byte_t>(char* value) {
2055  return xtd::convert::to_byte(value);
2056  }
2057 
2072  template<>
2073  inline byte_t as<byte_t>(const char8_t* value) {
2074  return xtd::convert::to_byte(value);
2075  }
2076 
2091  template<>
2092  inline byte_t as<byte_t>(char8_t* value) {
2093  return xtd::convert::to_byte(value);
2094  }
2095 
2110  template<>
2111  inline byte_t as<byte_t>(const char16_t* value) {
2112  return xtd::convert::to_byte(value);
2113  }
2114 
2129  template<>
2130  inline byte_t as<byte_t>(char16_t* value) {
2131  return xtd::convert::to_byte(value);
2132  }
2133 
2148  template<>
2149  inline byte_t as<byte_t>(const char32_t* value) {
2150  return xtd::convert::to_byte(value);
2151  }
2152 
2167  template<>
2168  inline byte_t as<byte_t>(char32_t* value) {
2169  return xtd::convert::to_byte(value);
2170  }
2171 
2186  template<>
2187  inline byte_t as<byte_t>(const wchar_t* value) {
2188  return xtd::convert::to_byte(value);
2189  }
2190 
2205  template<>
2206  inline byte_t as<byte_t>(wchar_t* value) {
2207  return xtd::convert::to_byte(value);
2208  }
2209 
2224  template<>
2225  inline char as<char>(std::any value) {
2226  return xtd::convert::to_char(value);
2227  }
2228 
2242  template<>
2243  inline char as<char>(bool value) {
2244  return xtd::convert::to_char(value);
2245  }
2246 
2260  template<>
2261  inline char as<char>(byte_t value) {
2262  return xtd::convert::to_char(value);
2263  }
2264 
2279  template<>
2280  inline char as<char>(char value) {
2281  return xtd::convert::to_char(value);
2282  }
2283 
2298  template<>
2299  inline char as<char>(char8_t value) {
2300  return xtd::convert::to_char(value);
2301  }
2302 
2317  template<>
2318  inline char as<char>(char16_t value) {
2319  return xtd::convert::to_char(value);
2320  }
2321 
2336  template<>
2337  inline char as<char>(char32_t value) {
2338  return xtd::convert::to_char(value);
2339  }
2340 
2355  template<>
2356  inline char as<char>(wchar_t value) {
2357  return xtd::convert::to_char(value);
2358  }
2359 
2373  template<>
2374  inline char as<char>(decimal_t value) {
2375  return xtd::convert::to_char(value);
2376  }
2377 
2391  template<>
2392  inline char as<char>(double value) {
2393  return xtd::convert::to_char(value);
2394  }
2395 
2409  template<>
2410  inline char as<char>(float value) {
2411  return xtd::convert::to_char(value);
2412  }
2413 
2427  template<>
2428  inline char as<char>(int16_t value) {
2429  return xtd::convert::to_char(value);
2430  }
2431 
2445  template<>
2446  inline char as<char>(int32_t value) {
2447  return xtd::convert::to_char(value);
2448  }
2449 
2463  template<>
2464  inline char as<char>(int64_t value) {
2465  return xtd::convert::to_char(value);
2466  }
2467 
2481  template<>
2482  inline char as<char>(llong_t value) {
2483  return xtd::convert::to_char(value);
2484  }
2485 
2499  template<>
2500  inline char as<char>(sbyte_t value) {
2501  return xtd::convert::to_char(value);
2502  }
2503 
2517  template<>
2518  inline char as<char>(uint16_t value) {
2519  return xtd::convert::to_char(value);
2520  }
2521 
2535  template<>
2536  inline char as<char>(uint32_t value) {
2537  return xtd::convert::to_char(value);
2538  }
2539 
2553  template<>
2554  inline char as<char>(uint64_t value) {
2555  return xtd::convert::to_char(value);
2556  }
2557 
2571  template<>
2572  inline char as<char>(ullong_t value) {
2573  return xtd::convert::to_char(value);
2574  }
2575 
2590  template<>
2591  inline char as<char>(const xtd::ustring& value) {
2592  return xtd::convert::to_char(value);
2593  }
2594 
2609  template<>
2610  inline char as<char>(const std::string& value) {
2611  return xtd::convert::to_char(value);
2612  }
2613 
2628  template<>
2629  inline char as<char>(const std::u8string& value) {
2630  return xtd::convert::to_char(value);
2631  }
2632 
2647  template<>
2648  inline char as<char>(const std::u16string& value) {
2649  return xtd::convert::to_char(value);
2650  }
2651 
2666  template<>
2667  inline char as<char>(const std::u32string& value) {
2668  return xtd::convert::to_char(value);
2669  }
2670 
2685  template<>
2686  inline char as<char>(const std::wstring& value) {
2687  return xtd::convert::to_char(value);
2688  }
2689 
2704  template<>
2705  inline char as<char>(const char* value) {
2706  return xtd::convert::to_char(value);
2707  }
2708 
2723  template<>
2724  inline char as<char>(char* value) {
2725  return xtd::convert::to_char(value);
2726  }
2727 
2742  template<>
2743  inline char as<char>(const char8_t* value) {
2744  return xtd::convert::to_char(value);
2745  }
2746 
2761  template<>
2762  inline char as<char>(char8_t* value) {
2763  return xtd::convert::to_char(value);
2764  }
2765 
2780  template<>
2781  inline char as<char>(const char16_t* value) {
2782  return xtd::convert::to_char(value);
2783  }
2784 
2799  template<>
2800  inline char as<char>(char16_t* value) {
2801  return xtd::convert::to_char(value);
2802  }
2803 
2818  template<>
2819  inline char as<char>(const char32_t* value) {
2820  return xtd::convert::to_char(value);
2821  }
2822 
2837  template<>
2838  inline char as<char>(char32_t* value) {
2839  return xtd::convert::to_char(value);
2840  }
2841 
2856  template<>
2857  inline char as<char>(const wchar_t* value) {
2858  return xtd::convert::to_char(value);
2859  }
2860 
2875  template<>
2876  inline char as<char>(wchar_t* value) {
2877  return xtd::convert::to_char(value);
2878  }
2879 
2894  template<>
2895  inline char8_t as<char8_t>(std::any value) {
2896  return xtd::convert::to_char8(value);
2897  }
2898 
2912  template<>
2913  inline char8_t as<char8_t>(bool value) {
2914  return xtd::convert::to_char8(value);
2915  }
2916 
2930  template<>
2931  inline char8_t as<char8_t>(byte_t value) {
2932  return xtd::convert::to_char8(value);
2933  }
2934 
2949  template<>
2950  inline char8_t as<char8_t>(char value) {
2951  return xtd::convert::to_char8(value);
2952  }
2953 
2968  template<>
2969  inline char8_t as<char8_t>(char8_t value) {
2970  return xtd::convert::to_char8(value);
2971  }
2972 
2987  template<>
2988  inline char8_t as<char8_t>(char16_t value) {
2989  return xtd::convert::to_char8(value);
2990  }
2991 
3006  template<>
3007  inline char8_t as<char8_t>(char32_t value) {
3008  return xtd::convert::to_char8(value);
3009  }
3010 
3025  template<>
3026  inline char8_t as<char8_t>(wchar_t value) {
3027  return xtd::convert::to_char8(value);
3028  }
3029 
3043  template<>
3044  inline char8_t as<char8_t>(decimal_t value) {
3045  return xtd::convert::to_char8(value);
3046  }
3047 
3061  template<>
3062  inline char8_t as<char8_t>(double value) {
3063  return xtd::convert::to_char8(value);
3064  }
3065 
3079  template<>
3080  inline char8_t as<char8_t>(float value) {
3081  return xtd::convert::to_char8(value);
3082  }
3083 
3097  template<>
3098  inline char8_t as<char8_t>(int16_t value) {
3099  return xtd::convert::to_char8(value);
3100  }
3101 
3115  template<>
3116  inline char8_t as<char8_t>(int32_t value) {
3117  return xtd::convert::to_char8(value);
3118  }
3119 
3133  template<>
3134  inline char8_t as<char8_t>(int64_t value) {
3135  return xtd::convert::to_char8(value);
3136  }
3137 
3151  template<>
3152  inline char8_t as<char8_t>(llong_t value) {
3153  return xtd::convert::to_char8(value);
3154  }
3155 
3169  template<>
3170  inline char8_t as<char8_t>(sbyte_t value) {
3171  return xtd::convert::to_char8(value);
3172  }
3173 
3187  template<>
3188  inline char8_t as<char8_t>(uint16_t value) {
3189  return xtd::convert::to_char8(value);
3190  }
3191 
3205  template<>
3206  inline char8_t as<char8_t>(uint32_t value) {
3207  return xtd::convert::to_char8(value);
3208  }
3209 
3223  template<>
3224  inline char8_t as<char8_t>(uint64_t value) {
3225  return xtd::convert::to_char8(value);
3226  }
3227 
3241  template<>
3242  inline char8_t as<char8_t>(ullong_t value) {
3243  return xtd::convert::to_char8(value);
3244  }
3245 
3260  template<>
3261  inline char8_t as<char8_t>(const xtd::ustring& value) {
3262  return xtd::convert::to_char8(value);
3263  }
3264 
3279  template<>
3280  inline char8_t as<char8_t>(const std::string& value) {
3281  return xtd::convert::to_char8(value);
3282  }
3283 
3298  template<>
3299  inline char8_t as<char8_t>(const std::u8string& value) {
3300  return xtd::convert::to_char8(value);
3301  }
3302 
3317  template<>
3318  inline char8_t as<char8_t>(const std::u16string& value) {
3319  return xtd::convert::to_char8(value);
3320  }
3321 
3336  template<>
3337  inline char8_t as<char8_t>(const std::u32string& value) {
3338  return xtd::convert::to_char8(value);
3339  }
3340 
3355  template<>
3356  inline char8_t as<char8_t>(const std::wstring& value) {
3357  return xtd::convert::to_char8(value);
3358  }
3359 
3374  template<>
3375  inline char8_t as<char8_t>(const char* value) {
3376  return xtd::convert::to_char8(value);
3377  }
3378 
3393  template<>
3394  inline char8_t as<char8_t>(char* value) {
3395  return xtd::convert::to_char8(value);
3396  }
3397 
3412  template<>
3413  inline char8_t as<char8_t>(const char8_t* value) {
3414  return xtd::convert::to_char8(value);
3415  }
3416 
3431  template<>
3432  inline char8_t as<char8_t>(char8_t* value) {
3433  return xtd::convert::to_char8(value);
3434  }
3435 
3450  template<>
3451  inline char8_t as<char8_t>(const char16_t* value) {
3452  return xtd::convert::to_char8(value);
3453  }
3454 
3469  template<>
3470  inline char8_t as<char8_t>(char16_t* value) {
3471  return xtd::convert::to_char8(value);
3472  }
3473 
3488  template<>
3489  inline char8_t as<char8_t>(const char32_t* value) {
3490  return xtd::convert::to_char8(value);
3491  }
3492 
3507  template<>
3508  inline char8_t as<char8_t>(char32_t* value) {
3509  return xtd::convert::to_char8(value);
3510  }
3511 
3526  template<>
3527  inline char8_t as<char8_t>(const wchar_t* value) {
3528  return xtd::convert::to_char8(value);
3529  }
3530 
3545  template<>
3546  inline char8_t as<char8_t>(wchar_t* value) {
3547  return xtd::convert::to_char8(value);
3548  }
3549 
3564  template<>
3565  inline char16_t as<char16_t>(std::any value) {
3566  return xtd::convert::to_char16(value);
3567  }
3568 
3582  template<>
3583  inline char16_t as<char16_t>(bool value) {
3584  return xtd::convert::to_char16(value);
3585  }
3586 
3600  template<>
3601  inline char16_t as<char16_t>(byte_t value) {
3602  return xtd::convert::to_char16(value);
3603  }
3604 
3619  template<>
3620  inline char16_t as<char16_t>(char value) {
3621  return xtd::convert::to_char16(value);
3622  }
3623 
3638  template<>
3639  inline char16_t as<char16_t>(char8_t value) {
3640  return xtd::convert::to_char16(value);
3641  }
3642 
3657  template<>
3658  inline char16_t as<char16_t>(char16_t value) {
3659  return xtd::convert::to_char16(value);
3660  }
3661 
3676  template<>
3677  inline char16_t as<char16_t>(char32_t value) {
3678  return xtd::convert::to_char16(value);
3679  }
3680 
3695  template<>
3696  inline char16_t as<char16_t>(wchar_t value) {
3697  return xtd::convert::to_char16(value);
3698  }
3699 
3713  template<>
3714  inline char16_t as<char16_t>(decimal_t value) {
3715  return xtd::convert::to_char16(value);
3716  }
3717 
3731  template<>
3732  inline char16_t as<char16_t>(double value) {
3733  return xtd::convert::to_char16(value);
3734  }
3735 
3749  template<>
3750  inline char16_t as<char16_t>(float value) {
3751  return xtd::convert::to_char16(value);
3752  }
3753 
3767  template<>
3768  inline char16_t as<char16_t>(int16_t value) {
3769  return xtd::convert::to_char16(value);
3770  }
3771 
3785  template<>
3786  inline char16_t as<char16_t>(int32_t value) {
3787  return xtd::convert::to_char16(value);
3788  }
3789 
3803  template<>
3804  inline char16_t as<char16_t>(int64_t value) {
3805  return xtd::convert::to_char16(value);
3806  }
3807 
3821  template<>
3822  inline char16_t as<char16_t>(llong_t value) {
3823  return xtd::convert::to_char16(value);
3824  }
3825 
3839  template<>
3840  inline char16_t as<char16_t>(sbyte_t value) {
3841  return xtd::convert::to_char16(value);
3842  }
3843 
3857  template<>
3858  inline char16_t as<char16_t>(uint16_t value) {
3859  return xtd::convert::to_char16(value);
3860  }
3861 
3875  template<>
3876  inline char16_t as<char16_t>(uint32_t value) {
3877  return xtd::convert::to_char16(value);
3878  }
3879 
3893  template<>
3894  inline char16_t as<char16_t>(uint64_t value) {
3895  return xtd::convert::to_char16(value);
3896  }
3897 
3911  template<>
3912  inline char16_t as<char16_t>(ullong_t value) {
3913  return xtd::convert::to_char16(value);
3914  }
3915 
3930  template<>
3931  inline char16_t as<char16_t>(const xtd::ustring& value) {
3932  return xtd::convert::to_char16(value);
3933  }
3934 
3949  template<>
3950  inline char16_t as<char16_t>(const std::string& value) {
3951  return xtd::convert::to_char16(value);
3952  }
3953 
3968  template<>
3969  inline char16_t as<char16_t>(const std::u8string& value) {
3970  return xtd::convert::to_char16(value);
3971  }
3972 
3987  template<>
3988  inline char16_t as<char16_t>(const std::u16string& value) {
3989  return xtd::convert::to_char16(value);
3990  }
3991 
4006  template<>
4007  inline char16_t as<char16_t>(const std::u32string& value) {
4008  return xtd::convert::to_char16(value);
4009  }
4010 
4025  template<>
4026  inline char16_t as<char16_t>(const std::wstring& value) {
4027  return xtd::convert::to_char16(value);
4028  }
4029 
4044  template<>
4045  inline char16_t as<char16_t>(const char* value) {
4046  return xtd::convert::to_char16(value);
4047  }
4048 
4063  template<>
4064  inline char16_t as<char16_t>(char* value) {
4065  return xtd::convert::to_char16(value);
4066  }
4067 
4082  template<>
4083  inline char16_t as<char16_t>(const char8_t* value) {
4084  return xtd::convert::to_char16(value);
4085  }
4086 
4101  template<>
4102  inline char16_t as<char16_t>(char8_t* value) {
4103  return xtd::convert::to_char16(value);
4104  }
4105 
4120  template<>
4121  inline char16_t as<char16_t>(const char16_t* value) {
4122  return xtd::convert::to_char16(value);
4123  }
4124 
4139  template<>
4140  inline char16_t as<char16_t>(char16_t* value) {
4141  return xtd::convert::to_char16(value);
4142  }
4143 
4158  template<>
4159  inline char16_t as<char16_t>(const char32_t* value) {
4160  return xtd::convert::to_char16(value);
4161  }
4162 
4177  template<>
4178  inline char16_t as<char16_t>(char32_t* value) {
4179  return xtd::convert::to_char16(value);
4180  }
4181 
4196  template<>
4197  inline char16_t as<char16_t>(const wchar_t* value) {
4198  return xtd::convert::to_char16(value);
4199  }
4200 
4215  template<>
4216  inline char16_t as<char16_t>(wchar_t* value) {
4217  return xtd::convert::to_char16(value);
4218  }
4219 
4234  template<>
4235  inline char32_t as<char32_t>(std::any value) {
4236  return xtd::convert::to_char32(value);
4237  }
4238 
4252  template<>
4253  inline char32_t as<char32_t>(bool value) {
4254  return xtd::convert::to_char32(value);
4255  }
4256 
4270  template<>
4271  inline char32_t as<char32_t>(byte_t value) {
4272  return xtd::convert::to_char32(value);
4273  }
4274 
4289  template<>
4290  inline char32_t as<char32_t>(char value) {
4291  return xtd::convert::to_char32(value);
4292  }
4293 
4308  template<>
4309  inline char32_t as<char32_t>(char8_t value) {
4310  return xtd::convert::to_char32(value);
4311  }
4312 
4327  template<>
4328  inline char32_t as<char32_t>(char16_t value) {
4329  return xtd::convert::to_char32(value);
4330  }
4331 
4346  template<>
4347  inline char32_t as<char32_t>(char32_t value) {
4348  return xtd::convert::to_char32(value);
4349  }
4350 
4365  template<>
4366  inline char32_t as<char32_t>(wchar_t value) {
4367  return xtd::convert::to_char32(value);
4368  }
4369 
4383  template<>
4384  inline char32_t as<char32_t>(decimal_t value) {
4385  return xtd::convert::to_char32(value);
4386  }
4387 
4401  template<>
4402  inline char32_t as<char32_t>(double value) {
4403  return xtd::convert::to_char32(value);
4404  }
4405 
4419  template<>
4420  inline char32_t as<char32_t>(float value) {
4421  return xtd::convert::to_char32(value);
4422  }
4423 
4437  template<>
4438  inline char32_t as<char32_t>(int16_t value) {
4439  return xtd::convert::to_char32(value);
4440  }
4441 
4455  template<>
4456  inline char32_t as<char32_t>(int32_t value) {
4457  return xtd::convert::to_char32(value);
4458  }
4459 
4473  template<>
4474  inline char32_t as<char32_t>(int64_t value) {
4475  return xtd::convert::to_char32(value);
4476  }
4477 
4491  template<>
4492  inline char32_t as<char32_t>(llong_t value) {
4493  return xtd::convert::to_char32(value);
4494  }
4495 
4509  template<>
4510  inline char32_t as<char32_t>(sbyte_t value) {
4511  return xtd::convert::to_char32(value);
4512  }
4513 
4527  template<>
4528  inline char32_t as<char32_t>(uint16_t value) {
4529  return xtd::convert::to_char32(value);
4530  }
4531 
4545  template<>
4546  inline char32_t as<char32_t>(uint32_t value) {
4547  return xtd::convert::to_char32(value);
4548  }
4549 
4563  template<>
4564  inline char32_t as<char32_t>(uint64_t value) {
4565  return xtd::convert::to_char32(value);
4566  }
4567 
4581  template<>
4582  inline char32_t as<char32_t>(ullong_t value) {
4583  return xtd::convert::to_char32(value);
4584  }
4585 
4600  template<>
4601  inline char32_t as<char32_t>(const xtd::ustring& value) {
4602  return xtd::convert::to_char32(value);
4603  }
4604 
4619  template<>
4620  inline char32_t as<char32_t>(const std::string& value) {
4621  return xtd::convert::to_char32(value);
4622  }
4623 
4638  template<>
4639  inline char32_t as<char32_t>(const std::u8string& value) {
4640  return xtd::convert::to_char32(value);
4641  }
4642 
4657  template<>
4658  inline char32_t as<char32_t>(const std::u16string& value) {
4659  return xtd::convert::to_char32(value);
4660  }
4661 
4676  template<>
4677  inline char32_t as<char32_t>(const std::u32string& value) {
4678  return xtd::convert::to_char32(value);
4679  }
4680 
4695  template<>
4696  inline char32_t as<char32_t>(const std::wstring& value) {
4697  return xtd::convert::to_char32(value);
4698  }
4699 
4714  template<>
4715  inline char32_t as<char32_t>(const char* value) {
4716  return xtd::convert::to_char32(value);
4717  }
4718 
4733  template<>
4734  inline char32_t as<char32_t>(char* value) {
4735  return xtd::convert::to_char32(value);
4736  }
4737 
4752  template<>
4753  inline char32_t as<char32_t>(const char8_t* value) {
4754  return xtd::convert::to_char32(value);
4755  }
4756 
4771  template<>
4772  inline char32_t as<char32_t>(char8_t* value) {
4773  return xtd::convert::to_char32(value);
4774  }
4775 
4790  template<>
4791  inline char32_t as<char32_t>(const char16_t* value) {
4792  return xtd::convert::to_char32(value);
4793  }
4794 
4809  template<>
4810  inline char32_t as<char32_t>(char16_t* value) {
4811  return xtd::convert::to_char32(value);
4812  }
4813 
4828  template<>
4829  inline char32_t as<char32_t>(const char32_t* value) {
4830  return xtd::convert::to_char32(value);
4831  }
4832 
4847  template<>
4848  inline char32_t as<char32_t>(char32_t* value) {
4849  return xtd::convert::to_char32(value);
4850  }
4851 
4866  template<>
4867  inline char32_t as<char32_t>(const wchar_t* value) {
4868  return xtd::convert::to_char32(value);
4869  }
4870 
4885  template<>
4886  inline char32_t as<char32_t>(wchar_t* value) {
4887  return xtd::convert::to_char32(value);
4888  }
4889 
4904  template<>
4905  inline wchar_t as<wchar_t>(std::any value) {
4906  return xtd::convert::to_wchar(value);
4907  }
4908 
4922  template<>
4923  inline wchar_t as<wchar_t>(bool value) {
4924  return xtd::convert::to_wchar(value);
4925  }
4926 
4940  template<>
4941  inline wchar_t as<wchar_t>(byte_t value) {
4942  return xtd::convert::to_wchar(value);
4943  }
4944 
4959  template<>
4960  inline wchar_t as<wchar_t>(char value) {
4961  return xtd::convert::to_wchar(value);
4962  }
4963 
4978  template<>
4979  inline wchar_t as<wchar_t>(char8_t value) {
4980  return xtd::convert::to_wchar(value);
4981  }
4982 
4997  template<>
4998  inline wchar_t as<wchar_t>(char16_t value) {
4999  return xtd::convert::to_wchar(value);
5000  }
5001 
5016  template<>
5017  inline wchar_t as<wchar_t>(char32_t value) {
5018  return xtd::convert::to_wchar(value);
5019  }
5020 
5035  template<>
5036  inline wchar_t as<wchar_t>(wchar_t value) {
5037  return xtd::convert::to_wchar(value);
5038  }
5039 
5053  template<>
5054  inline wchar_t as<wchar_t>(decimal_t value) {
5055  return xtd::convert::to_wchar(value);
5056  }
5057 
5071  template<>
5072  inline wchar_t as<wchar_t>(double value) {
5073  return xtd::convert::to_wchar(value);
5074  }
5075 
5089  template<>
5090  inline wchar_t as<wchar_t>(float value) {
5091  return xtd::convert::to_wchar(value);
5092  }
5093 
5107  template<>
5108  inline wchar_t as<wchar_t>(int16_t value) {
5109  return xtd::convert::to_wchar(value);
5110  }
5111 
5125  template<>
5126  inline wchar_t as<wchar_t>(int32_t value) {
5127  return xtd::convert::to_wchar(value);
5128  }
5129 
5143  template<>
5144  inline wchar_t as<wchar_t>(int64_t value) {
5145  return xtd::convert::to_wchar(value);
5146  }
5147 
5161  template<>
5162  inline wchar_t as<wchar_t>(llong_t value) {
5163  return xtd::convert::to_wchar(value);
5164  }
5165 
5179  template<>
5180  inline wchar_t as<wchar_t>(sbyte_t value) {
5181  return xtd::convert::to_wchar(value);
5182  }
5183 
5197  template<>
5198  inline wchar_t as<wchar_t>(uint16_t value) {
5199  return xtd::convert::to_wchar(value);
5200  }
5201 
5215  template<>
5216  inline wchar_t as<wchar_t>(uint32_t value) {
5217  return xtd::convert::to_wchar(value);
5218  }
5219 
5233  template<>
5234  inline wchar_t as<wchar_t>(uint64_t value) {
5235  return xtd::convert::to_wchar(value);
5236  }
5237 
5251  template<>
5252  inline wchar_t as<wchar_t>(ullong_t value) {
5253  return xtd::convert::to_wchar(value);
5254  }
5255 
5270  template<>
5271  inline wchar_t as<wchar_t>(const xtd::ustring& value) {
5272  return xtd::convert::to_wchar(value);
5273  }
5274 
5289  template<>
5290  inline wchar_t as<wchar_t>(const std::string& value) {
5291  return xtd::convert::to_wchar(value);
5292  }
5293 
5308  template<>
5309  inline wchar_t as<wchar_t>(const std::u8string& value) {
5310  return xtd::convert::to_wchar(value);
5311  }
5312 
5327  template<>
5328  inline wchar_t as<wchar_t>(const std::u16string& value) {
5329  return xtd::convert::to_wchar(value);
5330  }
5331 
5346  template<>
5347  inline wchar_t as<wchar_t>(const std::u32string& value) {
5348  return xtd::convert::to_wchar(value);
5349  }
5350 
5365  template<>
5366  inline wchar_t as<wchar_t>(const std::wstring& value) {
5367  return xtd::convert::to_wchar(value);
5368  }
5369 
5384  template<>
5385  inline wchar_t as<wchar_t>(const char* value) {
5386  return xtd::convert::to_wchar(value);
5387  }
5388 
5403  template<>
5404  inline wchar_t as<wchar_t>(char* value) {
5405  return xtd::convert::to_wchar(value);
5406  }
5407 
5422  template<>
5423  inline wchar_t as<wchar_t>(const char8_t* value) {
5424  return xtd::convert::to_wchar(value);
5425  }
5426 
5441  template<>
5442  inline wchar_t as<wchar_t>(char8_t* value) {
5443  return xtd::convert::to_wchar(value);
5444  }
5445 
5460  template<>
5461  inline wchar_t as<wchar_t>(const char16_t* value) {
5462  return xtd::convert::to_wchar(value);
5463  }
5464 
5479  template<>
5480  inline wchar_t as<wchar_t>(char16_t* value) {
5481  return xtd::convert::to_wchar(value);
5482  }
5483 
5498  template<>
5499  inline wchar_t as<wchar_t>(const char32_t* value) {
5500  return xtd::convert::to_wchar(value);
5501  }
5502 
5517  template<>
5518  inline wchar_t as<wchar_t>(char32_t* value) {
5519  return xtd::convert::to_wchar(value);
5520  }
5521 
5536  template<>
5537  inline wchar_t as<wchar_t>(const wchar_t* value) {
5538  return xtd::convert::to_wchar(value);
5539  }
5540 
5555  template<>
5556  inline wchar_t as<wchar_t>(wchar_t* value) {
5557  return xtd::convert::to_wchar(value);
5558  }
5559 
5574  template<>
5575  inline decimal_t as<decimal_t>(std::any value) {
5576  return xtd::convert::to_decimal(value);
5577  }
5578 
5592  template<>
5593  inline decimal_t as<decimal_t>(bool value) {
5594  return xtd::convert::to_decimal(value);
5595  }
5596 
5610  template<>
5611  inline decimal_t as<decimal_t>(byte_t value) {
5612  return xtd::convert::to_decimal(value);
5613  }
5614 
5629  template<>
5630  inline decimal_t as<decimal_t>(char value) {
5631  return xtd::convert::to_decimal(value);
5632  }
5633 
5648  template<>
5649  inline decimal_t as<decimal_t>(char8_t value) {
5650  return xtd::convert::to_decimal(value);
5651  }
5652 
5667  template<>
5668  inline decimal_t as<decimal_t>(char16_t value) {
5669  return xtd::convert::to_decimal(value);
5670  }
5671 
5686  template<>
5687  inline decimal_t as<decimal_t>(char32_t value) {
5688  return xtd::convert::to_decimal(value);
5689  }
5690 
5705  template<>
5706  inline decimal_t as<decimal_t>(wchar_t value) {
5707  return xtd::convert::to_decimal(value);
5708  }
5709 
5723  template<>
5724  inline decimal_t as<decimal_t>(decimal_t value) {
5725  return xtd::convert::to_decimal(value);
5726  }
5727 
5741  template<>
5742  inline decimal_t as<decimal_t>(double value) {
5743  return xtd::convert::to_decimal(value);
5744  }
5745 
5759  template<>
5760  inline decimal_t as<decimal_t>(float value) {
5761  return xtd::convert::to_decimal(value);
5762  }
5763 
5777  template<>
5778  inline decimal_t as<decimal_t>(int16_t value) {
5779  return xtd::convert::to_decimal(value);
5780  }
5781 
5795  template<>
5796  inline decimal_t as<decimal_t>(int32_t value) {
5797  return xtd::convert::to_decimal(value);
5798  }
5799 
5813  template<>
5814  inline decimal_t as<decimal_t>(int64_t value) {
5815  return xtd::convert::to_decimal(value);
5816  }
5817 
5831  template<>
5832  inline decimal_t as<decimal_t>(llong_t value) {
5833  return xtd::convert::to_decimal(value);
5834  }
5835 
5849  template<>
5850  inline decimal_t as<decimal_t>(sbyte_t value) {
5851  return xtd::convert::to_decimal(value);
5852  }
5853 
5867  template<>
5868  inline decimal_t as<decimal_t>(uint16_t value) {
5869  return xtd::convert::to_decimal(value);
5870  }
5871 
5885  template<>
5886  inline decimal_t as<decimal_t>(uint32_t value) {
5887  return xtd::convert::to_decimal(value);
5888  }
5889 
5903  template<>
5904  inline decimal_t as<decimal_t>(uint64_t value) {
5905  return xtd::convert::to_decimal(value);
5906  }
5907 
5921  template<>
5922  inline decimal_t as<decimal_t>(ullong_t value) {
5923  return xtd::convert::to_decimal(value);
5924  }
5925 
5940  template<>
5941  inline decimal_t as<decimal_t>(const xtd::ustring& value) {
5942  return xtd::convert::to_decimal(value);
5943  }
5944 
5959  template<>
5960  inline decimal_t as<decimal_t>(const std::string& value) {
5961  return xtd::convert::to_decimal(value);
5962  }
5963 
5978  template<>
5979  inline decimal_t as<decimal_t>(const std::u8string& value) {
5980  return xtd::convert::to_decimal(value);
5981  }
5982 
5997  template<>
5998  inline decimal_t as<decimal_t>(const std::u16string& value) {
5999  return xtd::convert::to_decimal(value);
6000  }
6001 
6016  template<>
6017  inline decimal_t as<decimal_t>(const std::u32string& value) {
6018  return xtd::convert::to_decimal(value);
6019  }
6020 
6035  template<>
6036  inline decimal_t as<decimal_t>(const std::wstring& value) {
6037  return xtd::convert::to_decimal(value);
6038  }
6039 
6054  template<>
6055  inline decimal_t as<decimal_t>(const char* value) {
6056  return xtd::convert::to_decimal(value);
6057  }
6058 
6073  template<>
6074  inline decimal_t as<decimal_t>(char* value) {
6075  return xtd::convert::to_decimal(value);
6076  }
6077 
6092  template<>
6093  inline decimal_t as<decimal_t>(const char8_t* value) {
6094  return xtd::convert::to_decimal(value);
6095  }
6096 
6111  template<>
6112  inline decimal_t as<decimal_t>(char8_t* value) {
6113  return xtd::convert::to_decimal(value);
6114  }
6115 
6130  template<>
6131  inline decimal_t as<decimal_t>(const char16_t* value) {
6132  return xtd::convert::to_decimal(value);
6133  }
6134 
6149  template<>
6150  inline decimal_t as<decimal_t>(char16_t* value) {
6151  return xtd::convert::to_decimal(value);
6152  }
6153 
6168  template<>
6169  inline decimal_t as<decimal_t>(const char32_t* value) {
6170  return xtd::convert::to_decimal(value);
6171  }
6172 
6187  template<>
6188  inline decimal_t as<decimal_t>(char32_t* value) {
6189  return xtd::convert::to_decimal(value);
6190  }
6191 
6206  template<>
6207  inline decimal_t as<decimal_t>(const wchar_t* value) {
6208  return xtd::convert::to_decimal(value);
6209  }
6210 
6225  template<>
6226  inline decimal_t as<decimal_t>(wchar_t* value) {
6227  return xtd::convert::to_decimal(value);
6228  }
6229 
6244  template<>
6245  inline double as<double>(std::any value) {
6246  return xtd::convert::to_double(value);
6247  }
6248 
6262  template<>
6263  inline double as<double>(bool value) {
6264  return xtd::convert::to_double(value);
6265  }
6266 
6280  template<>
6281  inline double as<double>(byte_t value) {
6282  return xtd::convert::to_double(value);
6283  }
6284 
6299  template<>
6300  inline double as<double>(char value) {
6301  return xtd::convert::to_double(value);
6302  }
6303 
6318  template<>
6319  inline double as<double>(char8_t value) {
6320  return xtd::convert::to_double(value);
6321  }
6322 
6337  template<>
6338  inline double as<double>(char16_t value) {
6339  return xtd::convert::to_double(value);
6340  }
6341 
6356  template<>
6357  inline double as<double>(char32_t value) {
6358  return xtd::convert::to_double(value);
6359  }
6360 
6375  template<>
6376  inline double as<double>(wchar_t value) {
6377  return xtd::convert::to_double(value);
6378  }
6379 
6393  template<>
6394  inline double as<double>(decimal_t value) {
6395  return xtd::convert::to_double(value);
6396  }
6397 
6411  template<>
6412  inline double as<double>(double value) {
6413  return xtd::convert::to_double(value);
6414  }
6415 
6429  template<>
6430  inline double as<double>(float value) {
6431  return xtd::convert::to_double(value);
6432  }
6433 
6447  template<>
6448  inline double as<double>(int16_t value) {
6449  return xtd::convert::to_double(value);
6450  }
6451 
6465  template<>
6466  inline double as<double>(int32_t value) {
6467  return xtd::convert::to_double(value);
6468  }
6469 
6483  template<>
6484  inline double as<double>(int64_t value) {
6485  return xtd::convert::to_double(value);
6486  }
6487 
6501  template<>
6502  inline double as<double>(llong_t value) {
6503  return xtd::convert::to_double(value);
6504  }
6505 
6519  template<>
6520  inline double as<double>(sbyte_t value) {
6521  return xtd::convert::to_double(value);
6522  }
6523 
6537  template<>
6538  inline double as<double>(uint16_t value) {
6539  return xtd::convert::to_double(value);
6540  }
6541 
6555  template<>
6556  inline double as<double>(uint32_t value) {
6557  return xtd::convert::to_double(value);
6558  }
6559 
6573  template<>
6574  inline double as<double>(uint64_t value) {
6575  return xtd::convert::to_double(value);
6576  }
6577 
6591  template<>
6592  inline double as<double>(ullong_t value) {
6593  return xtd::convert::to_double(value);
6594  }
6595 
6610  template<>
6611  inline double as<double>(const xtd::ustring& value) {
6612  return xtd::convert::to_double(value);
6613  }
6614 
6629  template<>
6630  inline double as<double>(const std::string& value) {
6631  return xtd::convert::to_double(value);
6632  }
6633 
6648  template<>
6649  inline double as<double>(const std::u8string& value) {
6650  return xtd::convert::to_double(value);
6651  }
6652 
6667  template<>
6668  inline double as<double>(const std::u16string& value) {
6669  return xtd::convert::to_double(value);
6670  }
6671 
6686  template<>
6687  inline double as<double>(const std::u32string& value) {
6688  return xtd::convert::to_double(value);
6689  }
6690 
6705  template<>
6706  inline double as<double>(const std::wstring& value) {
6707  return xtd::convert::to_double(value);
6708  }
6709 
6724  template<>
6725  inline double as<double>(const char* value) {
6726  return xtd::convert::to_double(value);
6727  }
6728 
6743  template<>
6744  inline double as<double>(char* value) {
6745  return xtd::convert::to_double(value);
6746  }
6747 
6762  template<>
6763  inline double as<double>(const char8_t* value) {
6764  return xtd::convert::to_double(value);
6765  }
6766 
6781  template<>
6782  inline double as<double>(char8_t* value) {
6783  return xtd::convert::to_double(value);
6784  }
6785 
6800  template<>
6801  inline double as<double>(const char16_t* value) {
6802  return xtd::convert::to_double(value);
6803  }
6804 
6819  template<>
6820  inline double as<double>(char16_t* value) {
6821  return xtd::convert::to_double(value);
6822  }
6823 
6838  template<>
6839  inline double as<double>(const char32_t* value) {
6840  return xtd::convert::to_double(value);
6841  }
6842 
6857  template<>
6858  inline double as<double>(char32_t* value) {
6859  return xtd::convert::to_double(value);
6860  }
6861 
6876  template<>
6877  inline double as<double>(const wchar_t* value) {
6878  return xtd::convert::to_double(value);
6879  }
6880 
6895  template<>
6896  inline double as<double>(wchar_t* value) {
6897  return xtd::convert::to_double(value);
6898  }
6899 
6914  template<>
6915  inline float as<float>(std::any value) {
6916  return xtd::convert::to_single(value);
6917  }
6918 
6932  template<>
6933  inline float as<float>(bool value) {
6934  return xtd::convert::to_single(value);
6935  }
6936 
6950  template<>
6951  inline float as<float>(byte_t value) {
6952  return xtd::convert::to_single(value);
6953  }
6954 
6969  template<>
6970  inline float as<float>(char value) {
6971  return xtd::convert::to_single(value);
6972  }
6973 
6988  template<>
6989  inline float as<float>(char8_t value) {
6990  return xtd::convert::to_single(value);
6991  }
6992 
7007  template<>
7008  inline float as<float>(char16_t value) {
7009  return xtd::convert::to_single(value);
7010  }
7011 
7026  template<>
7027  inline float as<float>(char32_t value) {
7028  return xtd::convert::to_single(value);
7029  }
7030 
7045  template<>
7046  inline float as<float>(wchar_t value) {
7047  return xtd::convert::to_single(value);
7048  }
7049 
7063  template<>
7064  inline float as<float>(decimal_t value) {
7065  return xtd::convert::to_single(value);
7066  }
7067 
7081  template<>
7082  inline float as<float>(double value) {
7083  return xtd::convert::to_single(value);
7084  }
7085 
7099  template<>
7100  inline float as<float>(float value) {
7101  return xtd::convert::to_single(value);
7102  }
7103 
7117  template<>
7118  inline float as<float>(int16_t value) {
7119  return xtd::convert::to_single(value);
7120  }
7121 
7135  template<>
7136  inline float as<float>(int32_t value) {
7137  return xtd::convert::to_single(value);
7138  }
7139 
7153  template<>
7154  inline float as<float>(int64_t value) {
7155  return xtd::convert::to_single(value);
7156  }
7157 
7171  template<>
7172  inline float as<float>(llong_t value) {
7173  return xtd::convert::to_single(value);
7174  }
7175 
7189  template<>
7190  inline float as<float>(sbyte_t value) {
7191  return xtd::convert::to_single(value);
7192  }
7193 
7207  template<>
7208  inline float as<float>(uint16_t value) {
7209  return xtd::convert::to_single(value);
7210  }
7211 
7225  template<>
7226  inline float as<float>(uint32_t value) {
7227  return xtd::convert::to_single(value);
7228  }
7229 
7243  template<>
7244  inline float as<float>(uint64_t value) {
7245  return xtd::convert::to_single(value);
7246  }
7247 
7261  template<>
7262  inline float as<float>(ullong_t value) {
7263  return xtd::convert::to_single(value);
7264  }
7265 
7280  template<>
7281  inline float as<float>(const xtd::ustring& value) {
7282  return xtd::convert::to_single(value);
7283  }
7284 
7299  template<>
7300  inline float as<float>(const std::string& value) {
7301  return xtd::convert::to_single(value);
7302  }
7303 
7318  template<>
7319  inline float as<float>(const std::u8string& value) {
7320  return xtd::convert::to_single(value);
7321  }
7322 
7337  template<>
7338  inline float as<float>(const std::u16string& value) {
7339  return xtd::convert::to_single(value);
7340  }
7341 
7356  template<>
7357  inline float as<float>(const std::u32string& value) {
7358  return xtd::convert::to_single(value);
7359  }
7360 
7375  template<>
7376  inline float as<float>(const std::wstring& value) {
7377  return xtd::convert::to_single(value);
7378  }
7379 
7394  template<>
7395  inline float as<float>(const char* value) {
7396  return xtd::convert::to_single(value);
7397  }
7398 
7413  template<>
7414  inline float as<float>(char* value) {
7415  return xtd::convert::to_single(value);
7416  }
7417 
7432  template<>
7433  inline float as<float>(const char8_t* value) {
7434  return xtd::convert::to_single(value);
7435  }
7436 
7451  template<>
7452  inline float as<float>(char8_t* value) {
7453  return xtd::convert::to_single(value);
7454  }
7455 
7470  template<>
7471  inline float as<float>(const char16_t* value) {
7472  return xtd::convert::to_single(value);
7473  }
7474 
7489  template<>
7490  inline float as<float>(char16_t* value) {
7491  return xtd::convert::to_single(value);
7492  }
7493 
7508  template<>
7509  inline float as<float>(const char32_t* value) {
7510  return xtd::convert::to_single(value);
7511  }
7512 
7527  template<>
7528  inline float as<float>(char32_t* value) {
7529  return xtd::convert::to_single(value);
7530  }
7531 
7546  template<>
7547  inline float as<float>(const wchar_t* value) {
7548  return xtd::convert::to_single(value);
7549  }
7550 
7565  template<>
7566  inline float as<float>(wchar_t* value) {
7567  return xtd::convert::to_single(value);
7568  }
7569 
7584  template<>
7585  inline int16_t as<int16_t>(std::any value) {
7586  return xtd::convert::to_int16(value);
7587  }
7588 
7602  template<>
7603  inline int16_t as<int16_t>(bool value) {
7604  return xtd::convert::to_int16(value);
7605  }
7606 
7620  template<>
7621  inline int16_t as<int16_t>(byte_t value) {
7622  return xtd::convert::to_int16(value);
7623  }
7624 
7639  template<>
7640  inline int16_t as<int16_t>(char value) {
7641  return xtd::convert::to_int16(value);
7642  }
7643 
7658  template<>
7659  inline int16_t as<int16_t>(char8_t value) {
7660  return xtd::convert::to_int16(value);
7661  }
7662 
7677  template<>
7678  inline int16_t as<int16_t>(char16_t value) {
7679  return xtd::convert::to_int16(value);
7680  }
7681 
7696  template<>
7697  inline int16_t as<int16_t>(char32_t value) {
7698  return xtd::convert::to_int16(value);
7699  }
7700 
7715  template<>
7716  inline int16_t as<int16_t>(wchar_t value) {
7717  return xtd::convert::to_int16(value);
7718  }
7719 
7733  template<>
7734  inline int16_t as<int16_t>(decimal_t value) {
7735  return xtd::convert::to_int16(value);
7736  }
7737 
7751  template<>
7752  inline int16_t as<int16_t>(double value) {
7753  return xtd::convert::to_int16(value);
7754  }
7755 
7769  template<>
7770  inline int16_t as<int16_t>(float value) {
7771  return xtd::convert::to_int16(value);
7772  }
7773 
7787  template<>
7788  inline int16_t as<int16_t>(int16_t value) {
7789  return xtd::convert::to_int16(value);
7790  }
7791 
7805  template<>
7806  inline int16_t as<int16_t>(int32_t value) {
7807  return xtd::convert::to_int16(value);
7808  }
7809 
7823  template<>
7824  inline int16_t as<int16_t>(int64_t value) {
7825  return xtd::convert::to_int16(value);
7826  }
7827 
7841  template<>
7842  inline int16_t as<int16_t>(llong_t value) {
7843  return xtd::convert::to_int16(value);
7844  }
7845 
7859  template<>
7860  inline int16_t as<int16_t>(sbyte_t value) {
7861  return xtd::convert::to_int16(value);
7862  }
7863 
7877  template<>
7878  inline int16_t as<int16_t>(uint16_t value) {
7879  return xtd::convert::to_int16(value);
7880  }
7881 
7895  template<>
7896  inline int16_t as<int16_t>(uint32_t value) {
7897  return xtd::convert::to_int16(value);
7898  }
7899 
7913  template<>
7914  inline int16_t as<int16_t>(uint64_t value) {
7915  return xtd::convert::to_int16(value);
7916  }
7917 
7931  template<>
7932  inline int16_t as<int16_t>(ullong_t value) {
7933  return xtd::convert::to_int16(value);
7934  }
7935 
7950  template<>
7951  inline int16_t as<int16_t>(const xtd::ustring& value) {
7952  return xtd::convert::to_int16(value);
7953  }
7954 
7970  template<>
7971  inline int16_t as<int16_t>(const xtd::ustring& value, byte_t from_base) {
7972  return xtd::convert::to_int16(value, from_base);
7973  }
7974 
7989  template<>
7990  inline int16_t as<int16_t>(const std::string& value) {
7991  return xtd::convert::to_int16(value);
7992  }
7993 
8008  template<>
8009  inline int16_t as<int16_t>(const std::u8string& value) {
8010  return xtd::convert::to_int16(value);
8011  }
8012 
8027  template<>
8028  inline int16_t as<int16_t>(const std::u16string& value) {
8029  return xtd::convert::to_int16(value);
8030  }
8031 
8046  template<>
8047  inline int16_t as<int16_t>(const std::u32string& value) {
8048  return xtd::convert::to_int16(value);
8049  }
8050 
8065  template<>
8066  inline int16_t as<int16_t>(const std::wstring& value) {
8067  return xtd::convert::to_int16(value);
8068  }
8069 
8084  template<>
8085  inline int16_t as<int16_t>(const char* value) {
8086  return xtd::convert::to_int16(value);
8087  }
8088 
8103  template<>
8104  inline int16_t as<int16_t>(char* value) {
8105  return xtd::convert::to_int16(value);
8106  }
8107 
8122  template<>
8123  inline int16_t as<int16_t>(const char8_t* value) {
8124  return xtd::convert::to_int16(value);
8125  }
8126 
8141  template<>
8142  inline int16_t as<int16_t>(char8_t* value) {
8143  return xtd::convert::to_int16(value);
8144  }
8145 
8160  template<>
8161  inline int16_t as<int16_t>(const char16_t* value) {
8162  return xtd::convert::to_int16(value);
8163  }
8164 
8179  template<>
8180  inline int16_t as<int16_t>(char16_t* value) {
8181  return xtd::convert::to_int16(value);
8182  }
8183 
8198  template<>
8199  inline int16_t as<int16_t>(const char32_t* value) {
8200  return xtd::convert::to_int16(value);
8201  }
8202 
8217  template<>
8218  inline int16_t as<int16_t>(char32_t* value) {
8219  return xtd::convert::to_int16(value);
8220  }
8221 
8236  template<>
8237  inline int16_t as<int16_t>(const wchar_t* value) {
8238  return xtd::convert::to_int16(value);
8239  }
8240 
8255  template<>
8256  inline int16_t as<int16_t>(wchar_t* value) {
8257  return xtd::convert::to_int16(value);
8258  }
8259 
8274  template<>
8275  inline int32_t as<int32_t>(std::any value) {
8276  return xtd::convert::to_int32(value);
8277  }
8278 
8292  template<>
8293  inline int32_t as<int32_t>(bool value) {
8294  return xtd::convert::to_int32(value);
8295  }
8296 
8310  template<>
8311  inline int32_t as<int32_t>(byte_t value) {
8312  return xtd::convert::to_int32(value);
8313  }
8314 
8329  template<>
8330  inline int32_t as<int32_t>(char value) {
8331  return xtd::convert::to_int32(value);
8332  }
8333 
8348  template<>
8349  inline int32_t as<int32_t>(char8_t value) {
8350  return xtd::convert::to_int32(value);
8351  }
8352 
8367  template<>
8368  inline int32_t as<int32_t>(char16_t value) {
8369  return xtd::convert::to_int32(value);
8370  }
8371 
8386  template<>
8387  inline int32_t as<int32_t>(char32_t value) {
8388  return xtd::convert::to_int32(value);
8389  }
8390 
8405  template<>
8406  inline int32_t as<int32_t>(wchar_t value) {
8407  return xtd::convert::to_int32(value);
8408  }
8409 
8423  template<>
8424  inline int32_t as<int32_t>(decimal_t value) {
8425  return xtd::convert::to_int32(value);
8426  }
8427 
8441  template<>
8442  inline int32_t as<int32_t>(double value) {
8443  return xtd::convert::to_int32(value);
8444  }
8445 
8459  template<>
8460  inline int32_t as<int32_t>(float value) {
8461  return xtd::convert::to_int32(value);
8462  }
8463 
8477  template<>
8478  inline int32_t as<int32_t>(int16_t value) {
8479  return xtd::convert::to_int32(value);
8480  }
8481 
8495  template<>
8496  inline int32_t as<int32_t>(int32_t value) {
8497  return xtd::convert::to_int32(value);
8498  }
8499 
8513  template<>
8514  inline int32_t as<int32_t>(int64_t value) {
8515  return xtd::convert::to_int32(value);
8516  }
8517 
8531  template<>
8532  inline int32_t as<int32_t>(llong_t value) {
8533  return xtd::convert::to_int32(value);
8534  }
8535 
8549  template<>
8550  inline int32_t as<int32_t>(sbyte_t value) {
8551  return xtd::convert::to_int32(value);
8552  }
8553 
8567  template<>
8568  inline int32_t as<int32_t>(uint16_t value) {
8569  return xtd::convert::to_int32(value);
8570  }
8571 
8585  template<>
8586  inline int32_t as<int32_t>(uint32_t value) {
8587  return xtd::convert::to_int32(value);
8588  }
8589 
8603  template<>
8604  inline int32_t as<int32_t>(uint64_t value) {
8605  return xtd::convert::to_int32(value);
8606  }
8607 
8621  template<>
8622  inline int32_t as<int32_t>(ullong_t value) {
8623  return xtd::convert::to_int32(value);
8624  }
8625 
8640  template<>
8641  inline int32_t as<int32_t>(const xtd::ustring& value) {
8642  return xtd::convert::to_int32(value);
8643  }
8644 
8660  template<>
8661  inline int32_t as<int32_t>(const xtd::ustring& value, byte_t from_base) {
8662  return xtd::convert::to_int32(value, from_base);
8663  }
8664 
8679  template<>
8680  inline int32_t as<int32_t>(const std::string& value) {
8681  return xtd::convert::to_int32(value);
8682  }
8683 
8698  template<>
8699  inline int32_t as<int32_t>(const std::u8string& value) {
8700  return xtd::convert::to_int32(value);
8701  }
8702 
8717  template<>
8718  inline int32_t as<int32_t>(const std::u16string& value) {
8719  return xtd::convert::to_int32(value);
8720  }
8721 
8736  template<>
8737  inline int32_t as<int32_t>(const std::u32string& value) {
8738  return xtd::convert::to_int32(value);
8739  }
8740 
8755  template<>
8756  inline int32_t as<int32_t>(const std::wstring& value) {
8757  return xtd::convert::to_int32(value);
8758  }
8759 
8774  template<>
8775  inline int32_t as<int32_t>(const char* value) {
8776  return xtd::convert::to_int32(value);
8777  }
8778 
8793  template<>
8794  inline int32_t as<int32_t>(char* value) {
8795  return xtd::convert::to_int32(value);
8796  }
8797 
8812  template<>
8813  inline int32_t as<int32_t>(const char8_t* value) {
8814  return xtd::convert::to_int32(value);
8815  }
8816 
8831  template<>
8832  inline int32_t as<int32_t>(char8_t* value) {
8833  return xtd::convert::to_int32(value);
8834  }
8835 
8850  template<>
8851  inline int32_t as<int32_t>(const char16_t* value) {
8852  return xtd::convert::to_int32(value);
8853  }
8854 
8869  template<>
8870  inline int32_t as<int32_t>(char16_t* value) {
8871  return xtd::convert::to_int32(value);
8872  }
8873 
8888  template<>
8889  inline int32_t as<int32_t>(const char32_t* value) {
8890  return xtd::convert::to_int32(value);
8891  }
8892 
8907  template<>
8908  inline int32_t as<int32_t>(char32_t* value) {
8909  return xtd::convert::to_int32(value);
8910  }
8911 
8926  template<>
8927  inline int32_t as<int32_t>(const wchar_t* value) {
8928  return xtd::convert::to_int32(value);
8929  }
8930 
8945  template<>
8946  inline int32_t as<int32_t>(wchar_t* value) {
8947  return xtd::convert::to_int32(value);
8948  }
8949 
8964  template<>
8965  inline int64_t as<int64_t>(std::any value) {
8966  return xtd::convert::to_int64(value);
8967  }
8968 
8982  template<>
8983  inline int64_t as<int64_t>(bool value) {
8984  return xtd::convert::to_int64(value);
8985  }
8986 
9000  template<>
9001  inline int64_t as<int64_t>(byte_t value) {
9002  return xtd::convert::to_int64(value);
9003  }
9004 
9019  template<>
9020  inline int64_t as<int64_t>(char value) {
9021  return xtd::convert::to_int64(value);
9022  }
9023 
9038  template<>
9039  inline int64_t as<int64_t>(char8_t value) {
9040  return xtd::convert::to_int64(value);
9041  }
9042 
9057  template<>
9058  inline int64_t as<int64_t>(char16_t value) {
9059  return xtd::convert::to_int64(value);
9060  }
9061 
9076  template<>
9077  inline int64_t as<int64_t>(char32_t value) {
9078  return xtd::convert::to_int64(value);
9079  }
9080 
9095  template<>
9096  inline int64_t as<int64_t>(wchar_t value) {
9097  return xtd::convert::to_int64(value);
9098  }
9099 
9113  template<>
9114  inline int64_t as<int64_t>(decimal_t value) {
9115  return xtd::convert::to_int64(value);
9116  }
9117 
9131  template<>
9132  inline int64_t as<int64_t>(double value) {
9133  return xtd::convert::to_int64(value);
9134  }
9135 
9149  template<>
9150  inline int64_t as<int64_t>(float value) {
9151  return xtd::convert::to_int64(value);
9152  }
9153 
9167  template<>
9168  inline int64_t as<int64_t>(int16_t value) {
9169  return xtd::convert::to_int64(value);
9170  }
9171 
9185  template<>
9186  inline int64_t as<int64_t>(int32_t value) {
9187  return xtd::convert::to_int64(value);
9188  }
9189 
9203  template<>
9204  inline int64_t as<int64_t>(int64_t value) {
9205  return xtd::convert::to_int64(value);
9206  }
9207 
9221  template<>
9222  inline int64_t as<int64_t>(llong_t value) {
9223  return xtd::convert::to_int64(value);
9224  }
9225 
9239  template<>
9240  inline int64_t as<int64_t>(sbyte_t value) {
9241  return xtd::convert::to_int64(value);
9242  }
9243 
9257  template<>
9258  inline int64_t as<int64_t>(uint16_t value) {
9259  return xtd::convert::to_int64(value);
9260  }
9261 
9275  template<>
9276  inline int64_t as<int64_t>(uint32_t value) {
9277  return xtd::convert::to_int64(value);
9278  }
9279 
9293  template<>
9294  inline int64_t as<int64_t>(uint64_t value) {
9295  return xtd::convert::to_int64(value);
9296  }
9297 
9311  template<>
9312  inline int64_t as<int64_t>(ullong_t value) {
9313  return xtd::convert::to_int64(value);
9314  }
9315 
9330  template<>
9331  inline int64_t as<int64_t>(const xtd::ustring& value) {
9332  return xtd::convert::to_int64(value);
9333  }
9334 
9350  template<>
9351  inline int64_t as<int64_t>(const xtd::ustring& value, byte_t from_base) {
9352  return xtd::convert::to_int64(value, from_base);
9353  }
9354 
9369  template<>
9370  inline int64_t as<int64_t>(const std::string& value) {
9371  return xtd::convert::to_int64(value);
9372  }
9373 
9388  template<>
9389  inline int64_t as<int64_t>(const std::u8string& value) {
9390  return xtd::convert::to_int64(value);
9391  }
9392 
9407  template<>
9408  inline int64_t as<int64_t>(const std::u16string& value) {
9409  return xtd::convert::to_int64(value);
9410  }
9411 
9426  template<>
9427  inline int64_t as<int64_t>(const std::u32string& value) {
9428  return xtd::convert::to_int64(value);
9429  }
9430 
9445  template<>
9446  inline int64_t as<int64_t>(const std::wstring& value) {
9447  return xtd::convert::to_int64(value);
9448  }
9449 
9464  template<>
9465  inline int64_t as<int64_t>(const char* value) {
9466  return xtd::convert::to_int64(value);
9467  }
9468 
9483  template<>
9484  inline int64_t as<int64_t>(char* value) {
9485  return xtd::convert::to_int64(value);
9486  }
9487 
9502  template<>
9503  inline int64_t as<int64_t>(const char8_t* value) {
9504  return xtd::convert::to_int64(value);
9505  }
9506 
9521  template<>
9522  inline int64_t as<int64_t>(char8_t* value) {
9523  return xtd::convert::to_int64(value);
9524  }
9525 
9540  template<>
9541  inline int64_t as<int64_t>(const char16_t* value) {
9542  return xtd::convert::to_int64(value);
9543  }
9544 
9559  template<>
9560  inline int64_t as<int64_t>(char16_t* value) {
9561  return xtd::convert::to_int64(value);
9562  }
9563 
9578  template<>
9579  inline int64_t as<int64_t>(const char32_t* value) {
9580  return xtd::convert::to_int64(value);
9581  }
9582 
9597  template<>
9598  inline int64_t as<int64_t>(char32_t* value) {
9599  return xtd::convert::to_int64(value);
9600  }
9601 
9616  template<>
9617  inline int64_t as<int64_t>(const wchar_t* value) {
9618  return xtd::convert::to_int64(value);
9619  }
9620 
9635  template<>
9636  inline int64_t as<int64_t>(wchar_t* value) {
9637  return xtd::convert::to_int64(value);
9638  }
9639 
9654  template<>
9655  inline llong_t as<llong_t>(std::any value) {
9656  return xtd::convert::to_llong(value);
9657  }
9658 
9672  template<>
9673  inline llong_t as<llong_t>(bool value) {
9674  return xtd::convert::to_llong(value);
9675  }
9676 
9690  template<>
9691  inline llong_t as<llong_t>(byte_t value) {
9692  return xtd::convert::to_llong(value);
9693  }
9694 
9709  template<>
9710  inline llong_t as<llong_t>(char value) {
9711  return xtd::convert::to_llong(value);
9712  }
9713 
9728  template<>
9729  inline llong_t as<llong_t>(char8_t value) {
9730  return xtd::convert::to_llong(value);
9731  }
9732 
9747  template<>
9748  inline llong_t as<llong_t>(char16_t value) {
9749  return xtd::convert::to_llong(value);
9750  }
9751 
9766  template<>
9767  inline llong_t as<llong_t>(char32_t value) {
9768  return xtd::convert::to_llong(value);
9769  }
9770 
9785  template<>
9786  inline llong_t as<llong_t>(wchar_t value) {
9787  return xtd::convert::to_llong(value);
9788  }
9789 
9803  template<>
9804  inline llong_t as<llong_t>(decimal_t value) {
9805  return xtd::convert::to_llong(value);
9806  }
9807 
9821  template<>
9822  inline llong_t as<llong_t>(double value) {
9823  return xtd::convert::to_llong(value);
9824  }
9825 
9839  template<>
9840  inline llong_t as<llong_t>(float value) {
9841  return xtd::convert::to_llong(value);
9842  }
9843 
9857  template<>
9858  inline llong_t as<llong_t>(int16_t value) {
9859  return xtd::convert::to_llong(value);
9860  }
9861 
9875  template<>
9876  inline llong_t as<llong_t>(int32_t value) {
9877  return xtd::convert::to_llong(value);
9878  }
9879 
9893  template<>
9894  inline llong_t as<llong_t>(int64_t value) {
9895  return xtd::convert::to_llong(value);
9896  }
9897 
9911  template<>
9912  inline llong_t as<llong_t>(llong_t value) {
9913  return xtd::convert::to_llong(value);
9914  }
9915 
9929  template<>
9930  inline llong_t as<llong_t>(sbyte_t value) {
9931  return xtd::convert::to_llong(value);
9932  }
9933 
9947  template<>
9948  inline llong_t as<llong_t>(uint16_t value) {
9949  return xtd::convert::to_llong(value);
9950  }
9951 
9965  template<>
9966  inline llong_t as<llong_t>(uint32_t value) {
9967  return xtd::convert::to_llong(value);
9968  }
9969 
9983  template<>
9984  inline llong_t as<llong_t>(uint64_t value) {
9985  return xtd::convert::to_llong(value);
9986  }
9987 
10001  template<>
10002  inline llong_t as<llong_t>(ullong_t value) {
10003  return xtd::convert::to_llong(value);
10004  }
10005 
10020  template<>
10021  inline llong_t as<llong_t>(const xtd::ustring& value) {
10022  return xtd::convert::to_llong(value);
10023  }
10024 
10040  template<>
10041  inline llong_t as<llong_t>(const xtd::ustring& value, byte_t from_base) {
10042  return xtd::convert::to_llong(value, from_base);
10043  }
10044 
10059  template<>
10060  inline llong_t as<llong_t>(const std::string& value) {
10061  return xtd::convert::to_llong(value);
10062  }
10063 
10078  template<>
10079  inline llong_t as<llong_t>(const std::u8string& value) {
10080  return xtd::convert::to_llong(value);
10081  }
10082 
10097  template<>
10098  inline llong_t as<llong_t>(const std::u16string& value) {
10099  return xtd::convert::to_llong(value);
10100  }
10101 
10116  template<>
10117  inline llong_t as<llong_t>(const std::u32string& value) {
10118  return xtd::convert::to_llong(value);
10119  }
10120 
10135  template<>
10136  inline llong_t as<llong_t>(const std::wstring& value) {
10137  return xtd::convert::to_llong(value);
10138  }
10139 
10154  template<>
10155  inline llong_t as<llong_t>(const char* value) {
10156  return xtd::convert::to_llong(value);
10157  }
10158 
10173  template<>
10174  inline llong_t as<llong_t>(char* value) {
10175  return xtd::convert::to_llong(value);
10176  }
10177 
10192  template<>
10193  inline llong_t as<llong_t>(const char8_t* value) {
10194  return xtd::convert::to_llong(value);
10195  }
10196 
10211  template<>
10212  inline llong_t as<llong_t>(char8_t* value) {
10213  return xtd::convert::to_llong(value);
10214  }
10215 
10230  template<>
10231  inline llong_t as<llong_t>(const char16_t* value) {
10232  return xtd::convert::to_llong(value);
10233  }
10234 
10249  template<>
10250  inline llong_t as<llong_t>(char16_t* value) {
10251  return xtd::convert::to_llong(value);
10252  }
10253 
10268  template<>
10269  inline llong_t as<llong_t>(const char32_t* value) {
10270  return xtd::convert::to_llong(value);
10271  }
10272 
10287  template<>
10288  inline llong_t as<llong_t>(char32_t* value) {
10289  return xtd::convert::to_llong(value);
10290  }
10291 
10306  template<>
10307  inline llong_t as<llong_t>(const wchar_t* value) {
10308  return xtd::convert::to_llong(value);
10309  }
10310 
10325  template<>
10326  inline llong_t as<llong_t>(wchar_t* value) {
10327  return xtd::convert::to_llong(value);
10328  }
10329 
10344  template<>
10345  inline sbyte_t as<sbyte_t>(std::any value) {
10346  return xtd::convert::to_sbyte(value);
10347  }
10348 
10362  template<>
10363  inline sbyte_t as<sbyte_t>(bool value) {
10364  return xtd::convert::to_sbyte(value);
10365  }
10366 
10380  template<>
10381  inline sbyte_t as<sbyte_t>(byte_t value) {
10382  return xtd::convert::to_sbyte(value);
10383  }
10384 
10399  template<>
10400  inline sbyte_t as<sbyte_t>(char value) {
10401  return xtd::convert::to_sbyte(value);
10402  }
10403 
10418  template<>
10419  inline sbyte_t as<sbyte_t>(char8_t value) {
10420  return xtd::convert::to_sbyte(value);
10421  }
10422 
10437  template<>
10438  inline sbyte_t as<sbyte_t>(char16_t value) {
10439  return xtd::convert::to_sbyte(value);
10440  }
10441 
10456  template<>
10457  inline sbyte_t as<sbyte_t>(char32_t value) {
10458  return xtd::convert::to_sbyte(value);
10459  }
10460 
10475  template<>
10476  inline sbyte_t as<sbyte_t>(wchar_t value) {
10477  return xtd::convert::to_sbyte(value);
10478  }
10479 
10493  template<>
10494  inline sbyte_t as<sbyte_t>(decimal_t value) {
10495  return xtd::convert::to_sbyte(value);
10496  }
10497 
10511  template<>
10512  inline sbyte_t as<sbyte_t>(double value) {
10513  return xtd::convert::to_sbyte(value);
10514  }
10515 
10529  template<>
10530  inline sbyte_t as<sbyte_t>(float value) {
10531  return xtd::convert::to_sbyte(value);
10532  }
10533 
10547  template<>
10548  inline sbyte_t as<sbyte_t>(int16_t value) {
10549  return xtd::convert::to_sbyte(value);
10550  }
10551 
10565  template<>
10566  inline sbyte_t as<sbyte_t>(int32_t value) {
10567  return xtd::convert::to_sbyte(value);
10568  }
10569 
10583  template<>
10584  inline sbyte_t as<sbyte_t>(int64_t value) {
10585  return xtd::convert::to_sbyte(value);
10586  }
10587 
10601  template<>
10602  inline sbyte_t as<sbyte_t>(llong_t value) {
10603  return xtd::convert::to_sbyte(value);
10604  }
10605 
10619  template<>
10620  inline sbyte_t as<sbyte_t>(sbyte_t value) {
10621  return xtd::convert::to_sbyte(value);
10622  }
10623 
10637  template<>
10638  inline sbyte_t as<sbyte_t>(uint16_t value) {
10639  return xtd::convert::to_sbyte(value);
10640  }
10641 
10655  template<>
10656  inline sbyte_t as<sbyte_t>(uint32_t value) {
10657  return xtd::convert::to_sbyte(value);
10658  }
10659 
10673  template<>
10674  inline sbyte_t as<sbyte_t>(uint64_t value) {
10675  return xtd::convert::to_sbyte(value);
10676  }
10677 
10691  template<>
10692  inline sbyte_t as<sbyte_t>(ullong_t value) {
10693  return xtd::convert::to_sbyte(value);
10694  }
10695 
10710  template<>
10711  inline sbyte_t as<sbyte_t>(const xtd::ustring& value) {
10712  return xtd::convert::to_sbyte(value);
10713  }
10714 
10730  template<>
10731  inline sbyte_t as<sbyte_t>(const xtd::ustring& value, byte_t from_base) {
10732  return xtd::convert::to_sbyte(value, from_base);
10733  }
10734 
10749  template<>
10750  inline sbyte_t as<sbyte_t>(const std::string& value) {
10751  return xtd::convert::to_sbyte(value);
10752  }
10753 
10768  template<>
10769  inline sbyte_t as<sbyte_t>(const std::u8string& value) {
10770  return xtd::convert::to_sbyte(value);
10771  }
10772 
10787  template<>
10788  inline sbyte_t as<sbyte_t>(const std::u16string& value) {
10789  return xtd::convert::to_sbyte(value);
10790  }
10791 
10806  template<>
10807  inline sbyte_t as<sbyte_t>(const std::u32string& value) {
10808  return xtd::convert::to_sbyte(value);
10809  }
10810 
10825  template<>
10826  inline sbyte_t as<sbyte_t>(const std::wstring& value) {
10827  return xtd::convert::to_sbyte(value);
10828  }
10829 
10844  template<>
10845  inline sbyte_t as<sbyte_t>(const char* value) {
10846  return xtd::convert::to_sbyte(value);
10847  }
10848 
10863  template<>
10864  inline sbyte_t as<sbyte_t>(char* value) {
10865  return xtd::convert::to_sbyte(value);
10866  }
10867 
10882  template<>
10883  inline sbyte_t as<sbyte_t>(const char8_t* value) {
10884  return xtd::convert::to_sbyte(value);
10885  }
10886 
10901  template<>
10902  inline sbyte_t as<sbyte_t>(char8_t* value) {
10903  return xtd::convert::to_sbyte(value);
10904  }
10905 
10920  template<>
10921  inline sbyte_t as<sbyte_t>(const char16_t* value) {
10922  return xtd::convert::to_sbyte(value);
10923  }
10924 
10939  template<>
10940  inline sbyte_t as<sbyte_t>(char16_t* value) {
10941  return xtd::convert::to_sbyte(value);
10942  }
10943 
10958  template<>
10959  inline sbyte_t as<sbyte_t>(const char32_t* value) {
10960  return xtd::convert::to_sbyte(value);
10961  }
10962 
10977  template<>
10978  inline sbyte_t as<sbyte_t>(char32_t* value) {
10979  return xtd::convert::to_sbyte(value);
10980  }
10981 
10996  template<>
10997  inline sbyte_t as<sbyte_t>(const wchar_t* value) {
10998  return xtd::convert::to_sbyte(value);
10999  }
11000 
11015  template<>
11016  inline sbyte_t as<sbyte_t>(wchar_t* value) {
11017  return xtd::convert::to_sbyte(value);
11018  }
11019 
11034  template<>
11035  inline uint16_t as<uint16_t>(std::any value) {
11036  return xtd::convert::to_uint16(value);
11037  }
11038 
11052  template<>
11053  inline uint16_t as<uint16_t>(bool value) {
11054  return xtd::convert::to_uint16(value);
11055  }
11056 
11070  template<>
11071  inline uint16_t as<uint16_t>(byte_t value) {
11072  return xtd::convert::to_uint16(value);
11073  }
11074 
11089  template<>
11090  inline uint16_t as<uint16_t>(char value) {
11091  return xtd::convert::to_uint16(value);
11092  }
11093 
11108  template<>
11109  inline uint16_t as<uint16_t>(char8_t value) {
11110  return xtd::convert::to_uint16(value);
11111  }
11112 
11127  template<>
11128  inline uint16_t as<uint16_t>(char16_t value) {
11129  return xtd::convert::to_uint16(value);
11130  }
11131 
11146  template<>
11147  inline uint16_t as<uint16_t>(char32_t value) {
11148  return xtd::convert::to_uint16(value);
11149  }
11150 
11165  template<>
11166  inline uint16_t as<uint16_t>(wchar_t value) {
11167  return xtd::convert::to_uint16(value);
11168  }
11169 
11183  template<>
11184  inline uint16_t as<uint16_t>(decimal_t value) {
11185  return xtd::convert::to_uint16(value);
11186  }
11187 
11201  template<>
11202  inline uint16_t as<uint16_t>(double value) {
11203  return xtd::convert::to_uint16(value);
11204  }
11205 
11219  template<>
11220  inline uint16_t as<uint16_t>(float value) {
11221  return xtd::convert::to_uint16(value);
11222  }
11223 
11237  template<>
11238  inline uint16_t as<uint16_t>(int16_t value) {
11239  return xtd::convert::to_uint16(value);
11240  }
11241 
11255  template<>
11256  inline uint16_t as<uint16_t>(int32_t value) {
11257  return xtd::convert::to_uint16(value);
11258  }
11259 
11273  template<>
11274  inline uint16_t as<uint16_t>(int64_t value) {
11275  return xtd::convert::to_uint16(value);
11276  }
11277 
11291  template<>
11292  inline uint16_t as<uint16_t>(llong_t value) {
11293  return xtd::convert::to_uint16(value);
11294  }
11295 
11309  template<>
11310  inline uint16_t as<uint16_t>(sbyte_t value) {
11311  return xtd::convert::to_uint16(value);
11312  }
11313 
11327  template<>
11328  inline uint16_t as<uint16_t>(uint16_t value) {
11329  return xtd::convert::to_uint16(value);
11330  }
11331 
11345  template<>
11346  inline uint16_t as<uint16_t>(uint32_t value) {
11347  return xtd::convert::to_uint16(value);
11348  }
11349 
11363  template<>
11364  inline uint16_t as<uint16_t>(uint64_t value) {
11365  return xtd::convert::to_uint16(value);
11366  }
11367 
11381  template<>
11382  inline uint16_t as<uint16_t>(ullong_t value) {
11383  return xtd::convert::to_uint16(value);
11384  }
11385 
11400  template<>
11401  inline uint16_t as<uint16_t>(const xtd::ustring& value) {
11402  return xtd::convert::to_uint16(value);
11403  }
11404 
11420  template<>
11421  inline uint16_t as<uint16_t>(const xtd::ustring& value, byte_t from_base) {
11422  return xtd::convert::to_uint16(value, from_base);
11423  }
11424 
11439  template<>
11440  inline uint16_t as<uint16_t>(const std::string& value) {
11441  return xtd::convert::to_uint16(value);
11442  }
11443 
11458  template<>
11459  inline uint16_t as<uint16_t>(const std::u8string& value) {
11460  return xtd::convert::to_uint16(value);
11461  }
11462 
11477  template<>
11478  inline uint16_t as<uint16_t>(const std::u16string& value) {
11479  return xtd::convert::to_uint16(value);
11480  }
11481 
11496  template<>
11497  inline uint16_t as<uint16_t>(const std::u32string& value) {
11498  return xtd::convert::to_uint16(value);
11499  }
11500 
11515  template<>
11516  inline uint16_t as<uint16_t>(const std::wstring& value) {
11517  return xtd::convert::to_uint16(value);
11518  }
11519 
11534  template<>
11535  inline uint16_t as<uint16_t>(const char* value) {
11536  return xtd::convert::to_uint16(value);
11537  }
11538 
11553  template<>
11554  inline uint16_t as<uint16_t>(char* value) {
11555  return xtd::convert::to_uint16(value);
11556  }
11557 
11572  template<>
11573  inline uint16_t as<uint16_t>(const char8_t* value) {
11574  return xtd::convert::to_uint16(value);
11575  }
11576 
11591  template<>
11592  inline uint16_t as<uint16_t>(char8_t* value) {
11593  return xtd::convert::to_uint16(value);
11594  }
11595 
11610  template<>
11611  inline uint16_t as<uint16_t>(const char16_t* value) {
11612  return xtd::convert::to_uint16(value);
11613  }
11614 
11629  template<>
11630  inline uint16_t as<uint16_t>(char16_t* value) {
11631  return xtd::convert::to_uint16(value);
11632  }
11633 
11648  template<>
11649  inline uint16_t as<uint16_t>(const char32_t* value) {
11650  return xtd::convert::to_uint16(value);
11651  }
11652 
11667  template<>
11668  inline uint16_t as<uint16_t>(char32_t* value) {
11669  return xtd::convert::to_uint16(value);
11670  }
11671 
11686  template<>
11687  inline uint16_t as<uint16_t>(const wchar_t* value) {
11688  return xtd::convert::to_uint16(value);
11689  }
11690 
11705  template<>
11706  inline uint16_t as<uint16_t>(wchar_t* value) {
11707  return xtd::convert::to_uint16(value);
11708  }
11709 
11724  template<>
11725  inline uint32_t as<uint32_t>(std::any value) {
11726  return xtd::convert::to_uint32(value);
11727  }
11728 
11742  template<>
11743  inline uint32_t as<uint32_t>(bool value) {
11744  return xtd::convert::to_uint32(value);
11745  }
11746 
11760  template<>
11761  inline uint32_t as<uint32_t>(byte_t value) {
11762  return xtd::convert::to_uint32(value);
11763  }
11764 
11779  template<>
11780  inline uint32_t as<uint32_t>(char value) {
11781  return xtd::convert::to_uint32(value);
11782  }
11783 
11798  template<>
11799  inline uint32_t as<uint32_t>(char8_t value) {
11800  return xtd::convert::to_uint32(value);
11801  }
11802 
11817  template<>
11818  inline uint32_t as<uint32_t>(char16_t value) {
11819  return xtd::convert::to_uint32(value);
11820  }
11821 
11836  template<>
11837  inline uint32_t as<uint32_t>(char32_t value) {
11838  return xtd::convert::to_uint32(value);
11839  }
11840 
11855  template<>
11856  inline uint32_t as<uint32_t>(wchar_t value) {
11857  return xtd::convert::to_uint32(value);
11858  }
11859 
11873  template<>
11874  inline uint32_t as<uint32_t>(decimal_t value) {
11875  return xtd::convert::to_uint32(value);
11876  }
11877 
11891  template<>
11892  inline uint32_t as<uint32_t>(double value) {
11893  return xtd::convert::to_uint32(value);
11894  }
11895 
11909  template<>
11910  inline uint32_t as<uint32_t>(float value) {
11911  return xtd::convert::to_uint32(value);
11912  }
11913 
11927  template<>
11928  inline uint32_t as<uint32_t>(int16_t value) {
11929  return xtd::convert::to_uint32(value);
11930  }
11931 
11945  template<>
11946  inline uint32_t as<uint32_t>(int32_t value) {
11947  return xtd::convert::to_uint32(value);
11948  }
11949 
11963  template<>
11964  inline uint32_t as<uint32_t>(int64_t value) {
11965  return xtd::convert::to_uint32(value);
11966  }
11967 
11981  template<>
11982  inline uint32_t as<uint32_t>(llong_t value) {
11983  return xtd::convert::to_uint32(value);
11984  }
11985 
11999  template<>
12000  inline uint32_t as<uint32_t>(sbyte_t value) {
12001  return xtd::convert::to_uint32(value);
12002  }
12003 
12017  template<>
12018  inline uint32_t as<uint32_t>(uint16_t value) {
12019  return xtd::convert::to_uint32(value);
12020  }
12021 
12035  template<>
12036  inline uint32_t as<uint32_t>(uint32_t value) {
12037  return xtd::convert::to_uint32(value);
12038  }
12039 
12053  template<>
12054  inline uint32_t as<uint32_t>(uint64_t value) {
12055  return xtd::convert::to_uint32(value);
12056  }
12057 
12071  template<>
12072  inline uint32_t as<uint32_t>(ullong_t value) {
12073  return xtd::convert::to_uint32(value);
12074  }
12075 
12090  template<>
12091  inline uint32_t as<uint32_t>(const xtd::ustring& value) {
12092  return xtd::convert::to_uint32(value);
12093  }
12094 
12110  template<>
12111  inline uint32_t as<uint32_t>(const xtd::ustring& value, byte_t from_base) {
12112  return xtd::convert::to_uint32(value, from_base);
12113  }
12114 
12129  template<>
12130  inline uint32_t as<uint32_t>(const std::string& value) {
12131  return xtd::convert::to_uint32(value);
12132  }
12133 
12148  template<>
12149  inline uint32_t as<uint32_t>(const std::u8string& value) {
12150  return xtd::convert::to_uint32(value);
12151  }
12152 
12167  template<>
12168  inline uint32_t as<uint32_t>(const std::u16string& value) {
12169  return xtd::convert::to_uint32(value);
12170  }
12171 
12186  template<>
12187  inline uint32_t as<uint32_t>(const std::u32string& value) {
12188  return xtd::convert::to_uint32(value);
12189  }
12190 
12205  template<>
12206  inline uint32_t as<uint32_t>(const std::wstring& value) {
12207  return xtd::convert::to_uint32(value);
12208  }
12209 
12224  template<>
12225  inline uint32_t as<uint32_t>(const char* value) {
12226  return xtd::convert::to_uint32(value);
12227  }
12228 
12243  template<>
12244  inline uint32_t as<uint32_t>(char* value) {
12245  return xtd::convert::to_uint32(value);
12246  }
12247 
12262  template<>
12263  inline uint32_t as<uint32_t>(const char8_t* value) {
12264  return xtd::convert::to_uint32(value);
12265  }
12266 
12281  template<>
12282  inline uint32_t as<uint32_t>(char8_t* value) {
12283  return xtd::convert::to_uint32(value);
12284  }
12285 
12300  template<>
12301  inline uint32_t as<uint32_t>(const char16_t* value) {
12302  return xtd::convert::to_uint32(value);
12303  }
12304 
12319  template<>
12320  inline uint32_t as<uint32_t>(char16_t* value) {
12321  return xtd::convert::to_uint32(value);
12322  }
12323 
12338  template<>
12339  inline uint32_t as<uint32_t>(const char32_t* value) {
12340  return xtd::convert::to_uint32(value);
12341  }
12342 
12357  template<>
12358  inline uint32_t as<uint32_t>(char32_t* value) {
12359  return xtd::convert::to_uint32(value);
12360  }
12361 
12376  template<>
12377  inline uint32_t as<uint32_t>(const wchar_t* value) {
12378  return xtd::convert::to_uint32(value);
12379  }
12380 
12395  template<>
12396  inline uint32_t as<uint32_t>(wchar_t* value) {
12397  return xtd::convert::to_uint32(value);
12398  }
12399 
12414  template<>
12415  inline uint64_t as<uint64_t>(std::any value) {
12416  return xtd::convert::to_uint64(value);
12417  }
12418 
12432  template<>
12433  inline uint64_t as<uint64_t>(bool value) {
12434  return xtd::convert::to_uint64(value);
12435  }
12436 
12450  template<>
12451  inline uint64_t as<uint64_t>(byte_t value) {
12452  return xtd::convert::to_uint64(value);
12453  }
12454 
12469  template<>
12470  inline uint64_t as<uint64_t>(char value) {
12471  return xtd::convert::to_uint64(value);
12472  }
12473 
12488  template<>
12489  inline uint64_t as<uint64_t>(char8_t value) {
12490  return xtd::convert::to_uint64(value);
12491  }
12492 
12507  template<>
12508  inline uint64_t as<uint64_t>(char16_t value) {
12509  return xtd::convert::to_uint64(value);
12510  }
12511 
12526  template<>
12527  inline uint64_t as<uint64_t>(char32_t value) {
12528  return xtd::convert::to_uint64(value);
12529  }
12530 
12545  template<>
12546  inline uint64_t as<uint64_t>(wchar_t value) {
12547  return xtd::convert::to_uint64(value);
12548  }
12549 
12563  template<>
12564  inline uint64_t as<uint64_t>(decimal_t value) {
12565  return xtd::convert::to_uint64(value);
12566  }
12567 
12581  template<>
12582  inline uint64_t as<uint64_t>(double value) {
12583  return xtd::convert::to_uint64(value);
12584  }
12585 
12599  template<>
12600  inline uint64_t as<uint64_t>(float value) {
12601  return xtd::convert::to_uint64(value);
12602  }
12603 
12617  template<>
12618  inline uint64_t as<uint64_t>(int16_t value) {
12619  return xtd::convert::to_uint64(value);
12620  }
12621 
12635  template<>
12636  inline uint64_t as<uint64_t>(int32_t value) {
12637  return xtd::convert::to_uint64(value);
12638  }
12639 
12653  template<>
12654  inline uint64_t as<uint64_t>(int64_t value) {
12655  return xtd::convert::to_uint64(value);
12656  }
12657 
12671  template<>
12672  inline uint64_t as<uint64_t>(llong_t value) {
12673  return xtd::convert::to_uint64(value);
12674  }
12675 
12689  template<>
12690  inline uint64_t as<uint64_t>(sbyte_t value) {
12691  return xtd::convert::to_uint64(value);
12692  }
12693 
12707  template<>
12708  inline uint64_t as<uint64_t>(uint16_t value) {
12709  return xtd::convert::to_uint64(value);
12710  }
12711 
12725  template<>
12726  inline uint64_t as<uint64_t>(uint32_t value) {
12727  return xtd::convert::to_uint64(value);
12728  }
12729 
12743  template<>
12744  inline uint64_t as<uint64_t>(uint64_t value) {
12745  return xtd::convert::to_uint64(value);
12746  }
12747 
12761  template<>
12762  inline uint64_t as<uint64_t>(ullong_t value) {
12763  return xtd::convert::to_uint64(value);
12764  }
12765 
12780  template<>
12781  inline uint64_t as<uint64_t>(const xtd::ustring& value) {
12782  return xtd::convert::to_uint64(value);
12783  }
12784 
12800  template<>
12801  inline uint64_t as<uint64_t>(const xtd::ustring& value, byte_t from_base) {
12802  return xtd::convert::to_uint64(value, from_base);
12803  }
12804 
12819  template<>
12820  inline uint64_t as<uint64_t>(const std::string& value) {
12821  return xtd::convert::to_uint64(value);
12822  }
12823 
12838  template<>
12839  inline uint64_t as<uint64_t>(const std::u8string& value) {
12840  return xtd::convert::to_uint64(value);
12841  }
12842 
12857  template<>
12858  inline uint64_t as<uint64_t>(const std::u16string& value) {
12859  return xtd::convert::to_uint64(value);
12860  }
12861 
12876  template<>
12877  inline uint64_t as<uint64_t>(const std::u32string& value) {
12878  return xtd::convert::to_uint64(value);
12879  }
12880 
12895  template<>
12896  inline uint64_t as<uint64_t>(const std::wstring& value) {
12897  return xtd::convert::to_uint64(value);
12898  }
12899 
12914  template<>
12915  inline uint64_t as<uint64_t>(const char* value) {
12916  return xtd::convert::to_uint64(value);
12917  }
12918 
12933  template<>
12934  inline uint64_t as<uint64_t>(char* value) {
12935  return xtd::convert::to_uint64(value);
12936  }
12937 
12952  template<>
12953  inline uint64_t as<uint64_t>(const char8_t* value) {
12954  return xtd::convert::to_uint64(value);
12955  }
12956 
12971  template<>
12972  inline uint64_t as<uint64_t>(char8_t* value) {
12973  return xtd::convert::to_uint64(value);
12974  }
12975 
12990  template<>
12991  inline uint64_t as<uint64_t>(const char16_t* value) {
12992  return xtd::convert::to_uint64(value);
12993  }
12994 
13009  template<>
13010  inline uint64_t as<uint64_t>(char16_t* value) {
13011  return xtd::convert::to_uint64(value);
13012  }
13013 
13028  template<>
13029  inline uint64_t as<uint64_t>(const char32_t* value) {
13030  return xtd::convert::to_uint64(value);
13031  }
13032 
13047  template<>
13048  inline uint64_t as<uint64_t>(char32_t* value) {
13049  return xtd::convert::to_uint64(value);
13050  }
13051 
13066  template<>
13067  inline uint64_t as<uint64_t>(const wchar_t* value) {
13068  return xtd::convert::to_uint64(value);
13069  }
13070 
13085  template<>
13086  inline uint64_t as<uint64_t>(wchar_t* value) {
13087  return xtd::convert::to_uint64(value);
13088  }
13089 
13104  template<>
13105  inline ullong_t as<ullong_t>(std::any value) {
13106  return xtd::convert::to_ullong(value);
13107  }
13108 
13122  template<>
13123  inline ullong_t as<ullong_t>(bool value) {
13124  return xtd::convert::to_ullong(value);
13125  }
13126 
13140  template<>
13141  inline ullong_t as<ullong_t>(byte_t value) {
13142  return xtd::convert::to_ullong(value);
13143  }
13144 
13159  template<>
13160  inline ullong_t as<ullong_t>(char value) {
13161  return xtd::convert::to_ullong(value);
13162  }
13163 
13178  template<>
13179  inline ullong_t as<ullong_t>(char8_t value) {
13180  return xtd::convert::to_ullong(value);
13181  }
13182 
13197  template<>
13198  inline ullong_t as<ullong_t>(char16_t value) {
13199  return xtd::convert::to_ullong(value);
13200  }
13201 
13216  template<>
13217  inline ullong_t as<ullong_t>(char32_t value) {
13218  return xtd::convert::to_ullong(value);
13219  }
13220 
13235  template<>
13236  inline ullong_t as<ullong_t>(wchar_t value) {
13237  return xtd::convert::to_ullong(value);
13238  }
13239 
13253  template<>
13254  inline ullong_t as<ullong_t>(decimal_t value) {
13255  return xtd::convert::to_ullong(value);
13256  }
13257 
13271  template<>
13272  inline ullong_t as<ullong_t>(double value) {
13273  return xtd::convert::to_ullong(value);
13274  }
13275 
13289  template<>
13290  inline ullong_t as<ullong_t>(float value) {
13291  return xtd::convert::to_ullong(value);
13292  }
13293 
13307  template<>
13308  inline ullong_t as<ullong_t>(int16_t value) {
13309  return xtd::convert::to_ullong(value);
13310  }
13311 
13325  template<>
13326  inline ullong_t as<ullong_t>(int32_t value) {
13327  return xtd::convert::to_ullong(value);
13328  }
13329 
13343  template<>
13344  inline ullong_t as<ullong_t>(int64_t value) {
13345  return xtd::convert::to_ullong(value);
13346  }
13347 
13361  template<>
13362  inline ullong_t as<ullong_t>(llong_t value) {
13363  return xtd::convert::to_ullong(value);
13364  }
13365 
13379  template<>
13380  inline ullong_t as<ullong_t>(sbyte_t value) {
13381  return xtd::convert::to_ullong(value);
13382  }
13383 
13397  template<>
13398  inline ullong_t as<ullong_t>(uint16_t value) {
13399  return xtd::convert::to_ullong(value);
13400  }
13401 
13415  template<>
13416  inline ullong_t as<ullong_t>(uint32_t value) {
13417  return xtd::convert::to_ullong(value);
13418  }
13419 
13433  template<>
13434  inline ullong_t as<ullong_t>(uint64_t value) {
13435  return xtd::convert::to_ullong(value);
13436  }
13437 
13451  template<>
13452  inline ullong_t as<ullong_t>(ullong_t value) {
13453  return xtd::convert::to_ullong(value);
13454  }
13455 
13470  template<>
13471  inline ullong_t as<ullong_t>(const xtd::ustring& value) {
13472  return xtd::convert::to_ullong(value);
13473  }
13474 
13490  template<>
13491  inline ullong_t as<ullong_t>(const xtd::ustring& value, byte_t from_base) {
13492  return xtd::convert::to_ullong(value, from_base);
13493  }
13494 
13509  template<>
13510  inline ullong_t as<ullong_t>(const std::string& value) {
13511  return xtd::convert::to_ullong(value);
13512  }
13513 
13528  template<>
13529  inline ullong_t as<ullong_t>(const std::u8string& value) {
13530  return xtd::convert::to_ullong(value);
13531  }
13532 
13547  template<>
13548  inline ullong_t as<ullong_t>(const std::u16string& value) {
13549  return xtd::convert::to_ullong(value);
13550  }
13551 
13566  template<>
13567  inline ullong_t as<ullong_t>(const std::u32string& value) {
13568  return xtd::convert::to_ullong(value);
13569  }
13570 
13585  template<>
13586  inline ullong_t as<ullong_t>(const std::wstring& value) {
13587  return xtd::convert::to_ullong(value);
13588  }
13589 
13604  template<>
13605  inline ullong_t as<ullong_t>(const char* value) {
13606  return xtd::convert::to_ullong(value);
13607  }
13608 
13623  template<>
13624  inline ullong_t as<ullong_t>(char* value) {
13625  return xtd::convert::to_ullong(value);
13626  }
13627 
13642  template<>
13643  inline ullong_t as<ullong_t>(const char8_t* value) {
13644  return xtd::convert::to_ullong(value);
13645  }
13646 
13661  template<>
13662  inline ullong_t as<ullong_t>(char8_t* value) {
13663  return xtd::convert::to_ullong(value);
13664  }
13665 
13680  template<>
13681  inline ullong_t as<ullong_t>(const char16_t* value) {
13682  return xtd::convert::to_ullong(value);
13683  }
13684 
13699  template<>
13700  inline ullong_t as<ullong_t>(char16_t* value) {
13701  return xtd::convert::to_ullong(value);
13702  }
13703 
13718  template<>
13719  inline ullong_t as<ullong_t>(const char32_t* value) {
13720  return xtd::convert::to_ullong(value);
13721  }
13722 
13737  template<>
13738  inline ullong_t as<ullong_t>(char32_t* value) {
13739  return xtd::convert::to_ullong(value);
13740  }
13741 
13756  template<>
13757  inline ullong_t as<ullong_t>(const wchar_t* value) {
13758  return xtd::convert::to_ullong(value);
13759  }
13760 
13775  template<>
13776  inline ullong_t as<ullong_t>(wchar_t* value) {
13777  return xtd::convert::to_ullong(value);
13778  }
13779 
13794  template<>
13795  inline ustring as<ustring>(std::any value) {
13796  return xtd::convert::to_string(value);
13797  }
13798 
13812  template<>
13813  inline ustring as<ustring>(bool value) {
13814  return xtd::convert::to_string(value);
13815  }
13816 
13830  template<>
13831  inline ustring as<ustring>(byte_t value) {
13832  return xtd::convert::to_string(value);
13833  }
13834 
13850  template<>
13851  inline ustring as<ustring>(byte_t value, byte_t from_base) {
13852  return xtd::convert::to_string(value, from_base);
13853  }
13854 
13869  template<>
13870  inline ustring as<ustring>(char value) {
13871  return xtd::convert::to_string(value);
13872  }
13873 
13888  template<>
13889  inline ustring as<ustring>(char8_t value) {
13890  return xtd::convert::to_string(value);
13891  }
13892 
13907  template<>
13908  inline ustring as<ustring>(char16_t value) {
13909  return xtd::convert::to_string(value);
13910  }
13911 
13926  template<>
13927  inline ustring as<ustring>(char32_t value) {
13928  return xtd::convert::to_string(value);
13929  }
13930 
13945  template<>
13946  inline ustring as<ustring>(wchar_t value) {
13947  return xtd::convert::to_string(value);
13948  }
13949 
13963  template<>
13964  inline ustring as<ustring>(decimal_t value) {
13965  return xtd::convert::to_string(value);
13966  }
13967 
13981  template<>
13982  inline ustring as<ustring>(double value) {
13983  return xtd::convert::to_string(value);
13984  }
13985 
13999  template<>
14000  inline ustring as<ustring>(float value) {
14001  return xtd::convert::to_string(value);
14002  }
14003 
14017  template<>
14018  inline ustring as<ustring>(int16_t value) {
14019  return xtd::convert::to_string(value);
14020  }
14021 
14037  template<>
14038  inline ustring as<ustring>(int16_t value, byte_t from_base) {
14039  return xtd::convert::to_string(value, from_base);
14040  }
14041 
14055  template<>
14056  inline ustring as<ustring>(int32_t value) {
14057  return xtd::convert::to_string(value);
14058  }
14059 
14075  template<>
14076  inline ustring as<ustring>(int32_t value, byte_t from_base) {
14077  return xtd::convert::to_string(value, from_base);
14078  }
14079 
14093  template<>
14094  inline ustring as<ustring>(int64_t value) {
14095  return xtd::convert::to_string(value);
14096  }
14097 
14113  template<>
14114  inline ustring as<ustring>(int64_t value, byte_t from_base) {
14115  return xtd::convert::to_string(value, from_base);
14116  }
14117 
14131  template<>
14132  inline ustring as<ustring>(llong_t value) {
14133  return xtd::convert::to_string(value);
14134  }
14135 
14151  template<>
14152  inline ustring as<ustring>(llong_t value, byte_t from_base) {
14153  return xtd::convert::to_string(value, from_base);
14154  }
14155 
14169  template<>
14170  inline ustring as<ustring>(sbyte_t value) {
14171  return xtd::convert::to_string(value);
14172  }
14173 
14189  template<>
14190  inline ustring as<ustring>(sbyte_t value, byte_t from_base) {
14191  return xtd::convert::to_string(value, from_base);
14192  }
14193 
14207  template<>
14208  inline ustring as<ustring>(uint16_t value) {
14209  return xtd::convert::to_string(value);
14210  }
14211 
14227  template<>
14228  inline ustring as<ustring>(uint16_t value, byte_t from_base) {
14229  return xtd::convert::to_string(value, from_base);
14230  }
14231 
14245  template<>
14246  inline ustring as<ustring>(uint32_t value) {
14247  return xtd::convert::to_string(value);
14248  }
14249 
14265  template<>
14266  inline ustring as<ustring>(uint32_t value, byte_t from_base) {
14267  return xtd::convert::to_string(value, from_base);
14268  }
14269 
14283  template<>
14284  inline ustring as<ustring>(uint64_t value) {
14285  return xtd::convert::to_string(value);
14286  }
14287 
14303  template<>
14304  inline ustring as<ustring>(uint64_t value, byte_t from_base) {
14305  return xtd::convert::to_string(value, from_base);
14306  }
14307 
14321  template<>
14322  inline ustring as<ustring>(ullong_t value) {
14323  return xtd::convert::to_string(value);
14324  }
14325 
14341  template<>
14342  inline ustring as<ustring>(ullong_t value, byte_t from_base) {
14343  return xtd::convert::to_string(value, from_base);
14344  }
14345 
14346  // ___________________________________________________________________________________________
14347  // xtd::convert_pointer specialization
14348 
14361  template<typename new_type_t, typename current_type_t>
14362  const new_type_t& as(const current_type_t& value) {
14363  return xtd::convert_pointer::to_ref<new_type_t>(value);
14364  }
14365 
14378  template<typename new_type_t, typename current_type_t>
14379  new_type_t& as(current_type_t& value) {
14380  return xtd::convert_pointer::to_ref<new_type_t>(value);
14381  }
14382 
14394  template<typename new_type_t, typename current_type_t>
14395  const new_type_t* as(const current_type_t* value) {
14396  return xtd::convert_pointer::to_ptr<new_type_t>(value);
14397  }
14398 
14410  template<typename new_type_t, typename current_type_t>
14411  new_type_t* as(current_type_t* value) {
14412  return xtd::convert_pointer::to_ptr<new_type_t>(value);
14413  }
14414 
14427  template<typename new_type_t, typename current_type_t>
14428  std::unique_ptr<new_type_t> as(std::unique_ptr<current_type_t>& value) {
14429  return xtd::convert_pointer::to_unique_ptr<new_type_t>(value);
14430  }
14431 
14443  template<typename new_type_t, typename current_type_t>
14444  std::unique_ptr<new_type_t> as(std::unique_ptr<current_type_t>&& value) {
14445  return xtd::convert_pointer::to_unique_ptr<new_type_t>(value);
14446  }
14447 
14460  template<typename new_type_t, typename current_type_t>
14461  std::shared_ptr<new_type_t> as(const std::shared_ptr<current_type_t>& value) {
14462  return xtd::convert_pointer::to_shared_ptr<new_type_t>(value);
14463  }
14464 
14476  template<typename new_type_t, typename current_type_t>
14477  std::shared_ptr<new_type_t> as(std::shared_ptr<current_type_t>& value) {
14478  return xtd::convert_pointer::to_shared_ptr<new_type_t>(value);
14479  }
14480 
14493  template<typename new_type_t, typename current_type_t>
14494  std::shared_ptr<new_type_t> as(std::shared_ptr<current_type_t>&& value) {
14495  return xtd::convert_pointer::to_shared_ptr<new_type_t>(value);
14496  }
14497 
14498  // ___________________________________________________________________________________________
14499  // xtd::convert_string specialization
14500 
14512  template<>
14513  inline std::string as<std::string>(const std::string& value) {
14514  return xtd::convert_string::to_string(value);
14515  }
14520  template<>
14521  inline std::string as<std::string>(std::string& value) {
14522  return xtd::convert_string::to_string(value);
14523  }
14524 
14536  template<>
14537  inline xtd::ustring as<xtd::ustring>(const std::string& value) {
14538  return xtd::convert_string::to_ustring(value);
14539  }
14540 
14552  template<>
14553  inline xtd::ustring as<xtd::ustring>(std::string& value) {
14554  return xtd::convert_string::to_ustring(value);
14555  }
14556 
14568  template<>
14569  inline std::u8string as<std::u8string>(const std::string& value) {
14570  return xtd::convert_string::to_u8string(value);
14571  }
14572 
14584  template<>
14585  inline std::u8string as<std::u8string>(std::string& value) {
14586  return xtd::convert_string::to_u8string(value);
14587  }
14588 
14600  template<>
14601  inline std::u16string as<std::u16string>(const std::string& value) {
14602  return xtd::convert_string::to_u16string(value);
14603  }
14604 
14616  template<>
14617  inline std::u16string as<std::u16string>(std::string& value) {
14618  return xtd::convert_string::to_u16string(value);
14619  }
14620 
14632  template<>
14633  inline std::u32string as<std::u32string>(const std::string& value) {
14634  return xtd::convert_string::to_u32string(value);
14635  }
14636 
14648  template<>
14649  inline std::u32string as<std::u32string>(std::string& value) {
14650  return xtd::convert_string::to_u32string(value);
14651  }
14652 
14664  template<>
14665  inline std::wstring as<std::wstring>(const std::string& value) {
14666  return xtd::convert_string::to_wstring(value);
14667  }
14668 
14680  template<>
14681  inline std::wstring as<std::wstring>(std::string& value) {
14682  return xtd::convert_string::to_wstring(value);
14683  }
14684 
14696  template<>
14697  inline std::string as<std::string>(const char* value) {
14698  return xtd::convert_string::to_string(value);
14699  }
14700 
14712  template<>
14713  inline xtd::ustring as<xtd::ustring>(const char* value) {
14714  return xtd::convert_string::to_ustring(value);
14715  }
14716 
14728  template<>
14729  inline std::u8string as<std::u8string>(const char* value) {
14730  return xtd::convert_string::to_u8string(value);
14731  }
14732 
14744  template<>
14745  inline std::u16string as<std::u16string>(const char* value) {
14746  return xtd::convert_string::to_u16string(value);
14747  }
14748 
14760  template<>
14761  inline std::u32string as<std::u32string>(const char* value) {
14762  return xtd::convert_string::to_u32string(value);
14763  }
14764 
14776  template<>
14777  inline std::wstring as<std::wstring>(const char* value) {
14778  return xtd::convert_string::to_wstring(value);
14779  }
14780 
14792  template<>
14793  inline std::string as<std::string>(char* value) {
14794  return xtd::convert_string::to_string(value);
14795  }
14796 
14808  template<>
14809  inline xtd::ustring as<xtd::ustring>(char* value) {
14810  return xtd::convert_string::to_ustring(value);
14811  }
14812 
14824  template<>
14825  inline std::u8string as<std::u8string>(char* value) {
14826  return xtd::convert_string::to_u8string(value);
14827  }
14828 
14840  template<>
14841  inline std::u16string as<std::u16string>(char* value) {
14842  return xtd::convert_string::to_u16string(value);
14843  }
14844 
14856  template<>
14857  inline std::u32string as<std::u32string>(char* value) {
14858  return xtd::convert_string::to_u32string(value);
14859  }
14860 
14872  template<>
14873  inline std::wstring as<std::wstring>(char* value) {
14874  return xtd::convert_string::to_wstring(value);
14875  }
14876 
14888  template<>
14889  inline std::string as<std::string>(const xtd::ustring& value) {
14890  return xtd::convert_string::to_string(value);
14891  }
14892 
14904  template<>
14905  inline std::string as<std::string>(xtd::ustring& value) {
14906  return xtd::convert_string::to_string(value);
14907  }
14908 
14920  template<>
14921  inline xtd::ustring as<xtd::ustring>(const xtd::ustring& value) {
14922  return xtd::convert_string::to_ustring(value);
14923  }
14924 
14936  template<>
14937  inline xtd::ustring as<xtd::ustring>(xtd::ustring& value) {
14938  return xtd::convert_string::to_ustring(value);
14939  }
14940 
14952  template<>
14953  inline std::u8string as<std::u8string>(const xtd::ustring& value) {
14954  return xtd::convert_string::to_u8string(value);
14955  }
14956 
14968  template<>
14969  inline std::u8string as<std::u8string>(xtd::ustring& value) {
14970  return xtd::convert_string::to_u8string(value);
14971  }
14972 
14984  template<>
14985  inline std::u16string as<std::u16string>(const xtd::ustring& value) {
14986  return xtd::convert_string::to_u16string(value);
14987  }
14988 
15000  template<>
15001  inline std::u16string as<std::u16string>(xtd::ustring& value) {
15002  return xtd::convert_string::to_u16string(value);
15003  }
15004 
15016  template<>
15017  inline std::u32string as<std::u32string>(const xtd::ustring& value) {
15018  return xtd::convert_string::to_u32string(value);
15019  }
15020 
15032  template<>
15033  inline std::u32string as<std::u32string>(xtd::ustring& value) {
15034  return xtd::convert_string::to_u32string(value);
15035  }
15036 
15048  template<>
15049  inline std::wstring as<std::wstring>(const xtd::ustring& value) {
15050  return xtd::convert_string::to_wstring(value);
15051  }
15052 
15064  template<>
15065  inline std::wstring as<std::wstring>(xtd::ustring& value) {
15066  return xtd::convert_string::to_wstring(value);
15067  }
15068 
15080  template<>
15081  inline std::string as<std::string>(const std::u8string& value) {
15082  return xtd::convert_string::to_string(value);
15083  }
15084 
15096  template<>
15097  inline std::string as<std::string>(std::u8string& value) {
15098  return xtd::convert_string::to_string(value);
15099  }
15100 
15112  template<>
15113  inline xtd::ustring as<xtd::ustring>(const std::u8string& value) {
15114  return xtd::convert_string::to_ustring(value);
15115  }
15116 
15128  template<>
15129  inline xtd::ustring as<xtd::ustring>(std::u8string& value) {
15130  return xtd::convert_string::to_ustring(value);
15131  }
15132 
15144  template<>
15145  inline std::u8string as<std::u8string>(const std::u8string& value) {
15146  return xtd::convert_string::to_u8string(value);
15147  }
15148 
15160  template<>
15161  inline std::u8string as<std::u8string>(std::u8string& value) {
15162  return xtd::convert_string::to_u8string(value);
15163  }
15164 
15176  template<>
15177  inline std::u16string as<std::u16string>(const std::u8string& value) {
15178  return xtd::convert_string::to_u16string(value);
15179  }
15180 
15192  template<>
15193  inline std::u16string as<std::u16string>(std::u8string& value) {
15194  return xtd::convert_string::to_u16string(value);
15195  }
15196 
15208  template<>
15209  inline std::u32string as<std::u32string>(const std::u8string& value) {
15210  return xtd::convert_string::to_u32string(value);
15211  }
15212 
15224  template<>
15225  inline std::u32string as<std::u32string>(std::u8string& value) {
15226  return xtd::convert_string::to_u32string(value);
15227  }
15228 
15240  template<>
15241  inline std::wstring as<std::wstring>(const std::u8string& value) {
15242  return xtd::convert_string::to_wstring(value);
15243  }
15244 
15256  template<>
15257  inline std::wstring as<std::wstring>(std::u8string& value) {
15258  return xtd::convert_string::to_wstring(value);
15259  }
15260 
15272  template<>
15273  inline std::string as<std::string>(const char8_t* value) {
15274  return xtd::convert_string::to_string(value);
15275  }
15276 
15288  template<>
15289  inline xtd::ustring as<xtd::ustring>(const char8_t* value) {
15290  return xtd::convert_string::to_ustring(value);
15291  }
15292 
15304  template<>
15305  inline std::u8string as<std::u8string>(const char8_t* value) {
15306  return xtd::convert_string::to_u8string(value);
15307  }
15308 
15320  template<>
15321  inline std::u16string as<std::u16string>(const char8_t* value) {
15322  return xtd::convert_string::to_u16string(value);
15323  }
15324 
15336  template<>
15337  inline std::u32string as<std::u32string>(const char8_t* value) {
15338  return xtd::convert_string::to_u32string(value);
15339  }
15340 
15352  template<>
15353  inline std::wstring as<std::wstring>(const char8_t* value) {
15354  return xtd::convert_string::to_wstring(value);
15355  }
15356 
15368  template<>
15369  inline std::string as<std::string>(char8_t* value) {
15370  return xtd::convert_string::to_string(value);
15371  }
15372 
15384  template<>
15385  inline xtd::ustring as<xtd::ustring>(char8_t* value) {
15386  return xtd::convert_string::to_ustring(value);
15387  }
15388 
15400  template<>
15401  inline std::u8string as<std::u8string>(char8_t* value) {
15402  return xtd::convert_string::to_u8string(value);
15403  }
15404 
15416  template<>
15417  inline std::u16string as<std::u16string>(char8_t* value) {
15418  return xtd::convert_string::to_u16string(value);
15419  }
15420 
15432  template<>
15433  inline std::u32string as<std::u32string>(char8_t* value) {
15434  return xtd::convert_string::to_u32string(value);
15435  }
15436 
15448  template<>
15449  inline std::wstring as<std::wstring>(char8_t* value) {
15450  return xtd::convert_string::to_wstring(value);
15451  }
15452 
15464  template<>
15465  inline std::string as<std::string>(const std::u16string& value) {
15466  return xtd::convert_string::to_string(value);
15467  }
15468 
15480  template<>
15481  inline std::string as<std::string>(std::u16string& value) {
15482  return xtd::convert_string::to_string(value);
15483  }
15484 
15496  template<>
15497  inline xtd::ustring as<xtd::ustring>(const std::u16string& value) {
15498  return xtd::convert_string::to_ustring(value);
15499  }
15500 
15512  template<>
15513  inline xtd::ustring as<xtd::ustring>(std::u16string& value) {
15514  return xtd::convert_string::to_ustring(value);
15515  }
15516 
15528  template<>
15529  inline std::u8string as<std::u8string>(const std::u16string& value) {
15530  return xtd::convert_string::to_u8string(value);
15531  }
15532 
15544  template<>
15545  inline std::u8string as<std::u8string>(std::u16string& value) {
15546  return xtd::convert_string::to_u8string(value);
15547  }
15548 
15560  template<>
15561  inline std::u16string as<std::u16string>(const std::u16string& value) {
15562  return xtd::convert_string::to_u16string(value);
15563  }
15564 
15576  template<>
15577  inline std::u16string as<std::u16string>(std::u16string& value) {
15578  return xtd::convert_string::to_u16string(value);
15579  }
15580 
15592  template<>
15593  inline std::u32string as<std::u32string>(const std::u16string& value) {
15594  return xtd::convert_string::to_u32string(value);
15595  }
15596 
15608  template<>
15609  inline std::u32string as<std::u32string>(std::u16string& value) {
15610  return xtd::convert_string::to_u32string(value);
15611  }
15612 
15624  template<>
15625  inline std::wstring as<std::wstring>(const std::u16string& value) {
15626  return xtd::convert_string::to_wstring(value);
15627  }
15628 
15640  template<>
15641  inline std::wstring as<std::wstring>(std::u16string& value) {
15642  return xtd::convert_string::to_wstring(value);
15643  }
15644 
15656  template<>
15657  inline std::string as<std::string>(const char16_t* value) {
15658  return xtd::convert_string::to_string(value);
15659  }
15660 
15672  template<>
15673  inline xtd::ustring as<xtd::ustring>(const char16_t* value) {
15674  return xtd::convert_string::to_ustring(value);
15675  }
15676 
15688  template<>
15689  inline std::u8string as<std::u8string>(const char16_t* value) {
15690  return xtd::convert_string::to_u8string(value);
15691  }
15692 
15704  template<>
15705  inline std::u16string as<std::u16string>(const char16_t* value) {
15706  return xtd::convert_string::to_u16string(value);
15707  }
15708 
15720  template<>
15721  inline std::u32string as<std::u32string>(const char16_t* value) {
15722  return xtd::convert_string::to_u32string(value);
15723  }
15724 
15736  template<>
15737  inline std::wstring as<std::wstring>(const char16_t* value) {
15738  return xtd::convert_string::to_wstring(value);
15739  }
15740 
15752  template<>
15753  inline std::string as<std::string>(char16_t* value) {
15754  return xtd::convert_string::to_string(value);
15755  }
15756 
15768  template<>
15769  inline xtd::ustring as<xtd::ustring>(char16_t* value) {
15770  return xtd::convert_string::to_ustring(value);
15771  }
15772 
15784  template<>
15785  inline std::u8string as<std::u8string>(char16_t* value) {
15786  return xtd::convert_string::to_u8string(value);
15787  }
15788 
15800  template<>
15801  inline std::u16string as<std::u16string>(char16_t* value) {
15802  return xtd::convert_string::to_u16string(value);
15803  }
15804 
15816  template<>
15817  inline std::u32string as<std::u32string>(char16_t* value) {
15818  return xtd::convert_string::to_u32string(value);
15819  }
15820 
15832  template<>
15833  inline std::wstring as<std::wstring>(char16_t* value) {
15834  return xtd::convert_string::to_wstring(value);
15835  }
15836 
15848  template<>
15849  inline std::string as<std::string>(const std::u32string& value) {
15850  return xtd::convert_string::to_string(value);
15851  }
15852 
15864  template<>
15865  inline std::string as<std::string>(std::u32string& value) {
15866  return xtd::convert_string::to_string(value);
15867  }
15868 
15880  template<>
15881  inline xtd::ustring as<xtd::ustring>(const std::u32string& value) {
15882  return xtd::convert_string::to_ustring(value);
15883  }
15884 
15896  template<>
15897  inline xtd::ustring as<xtd::ustring>(std::u32string& value) {
15898  return xtd::convert_string::to_ustring(value);
15899  }
15900 
15912  template<>
15913  inline std::u8string as<std::u8string>(const std::u32string& value) {
15914  return xtd::convert_string::to_u8string(value);
15915  }
15916 
15928  template<>
15929  inline std::u8string as<std::u8string>(std::u32string& value) {
15930  return xtd::convert_string::to_u8string(value);
15931  }
15932 
15944  template<>
15945  inline std::u16string as<std::u16string>(const std::u32string& value) {
15946  return xtd::convert_string::to_u16string(value);
15947  }
15948 
15960  template<>
15961  inline std::u16string as<std::u16string>(std::u32string& value) {
15962  return xtd::convert_string::to_u16string(value);
15963  }
15964 
15976  template<>
15977  inline std::u32string as<std::u32string>(const std::u32string& value) {
15978  return xtd::convert_string::to_u32string(value);
15979  }
15980 
15992  template<>
15993  inline std::u32string as<std::u32string>(std::u32string& value) {
15994  return xtd::convert_string::to_u32string(value);
15995  }
15996 
16008  template<>
16009  inline std::wstring as<std::wstring>(const std::u32string& value) {
16010  return xtd::convert_string::to_wstring(value);
16011  }
16012 
16024  template<>
16025  inline std::wstring as<std::wstring>(std::u32string& value) {
16026  return xtd::convert_string::to_wstring(value);
16027  }
16028 
16040  template<>
16041  inline std::string as<std::string>(const char32_t* value) {
16042  return xtd::convert_string::to_string(value);
16043  }
16044 
16056  template<>
16057  inline xtd::ustring as<xtd::ustring>(const char32_t* value) {
16058  return xtd::convert_string::to_ustring(value);
16059  }
16060 
16072  template<>
16073  inline std::u8string as<std::u8string>(const char32_t* value) {
16074  return xtd::convert_string::to_u8string(value);
16075  }
16076 
16088  template<>
16089  inline std::u16string as<std::u16string>(const char32_t* value) {
16090  return xtd::convert_string::to_u16string(value);
16091  }
16092 
16104  template<>
16105  inline std::u32string as<std::u32string>(const char32_t* value) {
16106  return xtd::convert_string::to_u32string(value);
16107  }
16108 
16120  template<>
16121  inline std::wstring as<std::wstring>(const char32_t* value) {
16122  return xtd::convert_string::to_wstring(value);
16123  }
16124 
16136  template<>
16137  inline std::string as<std::string>(char32_t* value) {
16138  return xtd::convert_string::to_string(value);
16139  }
16140 
16152  template<>
16153  inline xtd::ustring as<xtd::ustring>(char32_t* value) {
16154  return xtd::convert_string::to_ustring(value);
16155  }
16156 
16168  template<>
16169  inline std::u8string as<std::u8string>(char32_t* value) {
16170  return xtd::convert_string::to_u8string(value);
16171  }
16172 
16184  template<>
16185  inline std::u16string as<std::u16string>(char32_t* value) {
16186  return xtd::convert_string::to_u16string(value);
16187  }
16188 
16200  template<>
16201  inline std::u32string as<std::u32string>(char32_t* value) {
16202  return xtd::convert_string::to_u32string(value);
16203  }
16204 
16216  template<>
16217  inline std::wstring as<std::wstring>(char32_t* value) {
16218  return xtd::convert_string::to_wstring(value);
16219  }
16220 
16232  template<>
16233  inline std::string as<std::string>(const std::wstring& value) {
16234  return xtd::convert_string::to_string(value);
16235  }
16236 
16248  template<>
16249  inline std::string as<std::string>(std::wstring& value) {
16250  return xtd::convert_string::to_string(value);
16251  }
16252 
16264  template<>
16265  inline xtd::ustring as<xtd::ustring>(const std::wstring& value) {
16266  return xtd::convert_string::to_ustring(value);
16267  }
16268 
16280  template<>
16281  inline xtd::ustring as<xtd::ustring>(std::wstring& value) {
16282  return xtd::convert_string::to_ustring(value);
16283  }
16284 
16296  template<>
16297  inline std::u8string as<std::u8string>(const std::wstring& value) {
16298  return xtd::convert_string::to_u8string(value);
16299  }
16300 
16312  template<>
16313  inline std::u8string as<std::u8string>(std::wstring& value) {
16314  return xtd::convert_string::to_u8string(value);
16315  }
16316 
16328  template<>
16329  inline std::u16string as<std::u16string>(const std::wstring& value) {
16330  return xtd::convert_string::to_u16string(value);
16331  }
16332 
16344  template<>
16345  inline std::u16string as<std::u16string>(std::wstring& value) {
16346  return xtd::convert_string::to_u16string(value);
16347  }
16348 
16360  template<>
16361  inline std::u32string as<std::u32string>(const std::wstring& value) {
16362  return xtd::convert_string::to_u32string(value);
16363  }
16364 
16376  template<>
16377  inline std::u32string as<std::u32string>(std::wstring& value) {
16378  return xtd::convert_string::to_u32string(value);
16379  }
16380 
16392  template<>
16393  inline std::wstring as<std::wstring>(const std::wstring& value) {
16394  return xtd::convert_string::to_wstring(value);
16395  }
16396 
16408  template<>
16409  inline std::wstring as<std::wstring>(std::wstring& value) {
16410  return xtd::convert_string::to_wstring(value);
16411  }
16412 
16424  template<>
16425  inline std::string as<std::string>(const wchar_t* value) {
16426  return xtd::convert_string::to_string(value);
16427  }
16428 
16440  template<>
16441  inline xtd::ustring as<xtd::ustring>(const wchar_t* value) {
16442  return xtd::convert_string::to_ustring(value);
16443  }
16444 
16456  template<>
16457  inline std::u8string as<std::u8string>(const wchar_t* value) {
16458  return xtd::convert_string::to_u8string(value);
16459  }
16460 
16472  template<>
16473  inline std::u16string as<std::u16string>(const wchar_t* value) {
16474  return xtd::convert_string::to_u16string(value);
16475  }
16476 
16488  template<>
16489  inline std::u32string as<std::u32string>(const wchar_t* value) {
16490  return xtd::convert_string::to_u32string(value);
16491  }
16492 
16504  template<>
16505  inline std::wstring as<std::wstring>(const wchar_t* value) {
16506  return xtd::convert_string::to_wstring(value);
16507  }
16508 
16520  template<>
16521  inline std::string as<std::string>(wchar_t* value) {
16522  return xtd::convert_string::to_string(value);
16523  }
16524 
16536  template<>
16537  inline xtd::ustring as<xtd::ustring>(wchar_t* value) {
16538  return xtd::convert_string::to_ustring(value);
16539  }
16540 
16552  template<>
16553  inline std::u8string as<std::u8string>(wchar_t* value) {
16554  return xtd::convert_string::to_u8string(value);
16555  }
16556 
16568  template<>
16569  inline std::u16string as<std::u16string>(wchar_t* value) {
16570  return xtd::convert_string::to_u16string(value);
16571  }
16572 
16584  template<>
16585  inline std::u32string as<std::u32string>(wchar_t* value) {
16586  return xtd::convert_string::to_u32string(value);
16587  }
16588 
16600  template<>
16601  inline std::wstring as<std::wstring>(wchar_t* value) {
16602  return xtd::convert_string::to_wstring(value);
16603  }
16604 }
static std::u32string to_u32string(const std::string &str) noexcept
Converts std::string to std::u32string.
static std::u8string to_u8string(const std::string &str) noexcept
Converts std::string to std::u8string.
static xtd::ustring to_ustring(const std::string &str) noexcept
Converts std::string to xtd::ustring.
static const std::string & to_string(const std::string &str) noexcept
Converts std::string to std::string.
static std::u16string to_u16string(const std::string &str) noexcept
Converts std::string to std::u16string.
static std::wstring to_wstring(const std::string &str) noexcept
Converts std::string to std::wstring.
static double to_double(std::any value)
Convert std::any to double.
static char16_t to_char16(std::any value)
Convert std::any to char16.
static ustring to_string(std::any value)
Convert std::any to ustring.
static int64_t to_int64(std::any value)
Convert std::any to int64.
static bool to_boolean(std::any value)
Convert std::any to bool.
static byte_t to_byte(std::any value)
Convert std::any to byte.
static char8_t to_char8(std::any value)
Convert std::any to char8.
static float to_single(std::any value)
Convert std::any to single.
static sbyte_t to_sbyte(std::any value)
Convert std::any to sbyte.
static int16_t to_int16(std::any value)
Convert std::any to int16.
static ullong_t to_ullong(type_t value) noexcept
Convert type_t to ullong.
Definition: convert.h:4731
static uint32_t to_uint32(std::any value)
Convert std::any to uint32.
static uint64_t to_uint64(std::any value)
Convert std::any to uint64.
static int32_t to_int32(std::any value)
Convert std::any to int32.
static wchar_t to_wchar(std::any value)
Convert std::any to wchar.
static char32_t to_char32(std::any value)
Convert std::any to char32.
static decimal_t to_decimal(std::any value)
Convert std::any to decimal.
static char to_char(std::any value)
Convert std::any to char.
static uint16_t to_uint16(std::any value)
Convert std::any to uint16.
static llong_t to_llong(std::any value)
Convert std::any to llong.
The exception that is thrown for invalid casting or explicit conversion.
Definition: invalid_cast_exception.h:18
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
Contains xtd::convert class.
Contains xtd::convert class.
Contains xtd::convert_string class.
#define csf_
Provides information about the current stack frame.
Definition: stack_frame.h:213
float as< float >(std::any value)
Casts a type into another type.
Definition: as.h:6915
char16_t as< char16_t >(std::any value)
Casts a type into another type.
Definition: as.h:3565
new_type_t as(std::any value)
Casts a type into another type.
Definition: as.h:32
int16_t as< int16_t >(std::any value)
Casts a type into another type.
Definition: as.h:7585
uint64_t as< uint64_t >(std::any value)
Casts a type into another type.
Definition: as.h:12415
byte_t as< byte_t >(std::any value)
Casts a type into another type.
Definition: as.h:1535
wchar_t as< wchar_t >(std::any value)
Casts a type into another type.
Definition: as.h:4905
char32_t as< char32_t >(std::any value)
Casts a type into another type.
Definition: as.h:4235
int64_t as< int64_t >(std::any value)
Casts a type into another type.
Definition: as.h:8965
char8_t as< char8_t >(std::any value)
Casts a type into another type.
Definition: as.h:2895
llong_t as< llong_t >(std::any value)
Casts a type into another type.
Definition: as.h:9655
ustring as< ustring >(std::any value)
Casts a type into another type.
Definition: as.h:13795
ullong_t as< ullong_t >(std::any value)
Casts a type into another type.
Definition: as.h:13105
uint32_t as< uint32_t >(std::any value)
Casts a type into another type.
Definition: as.h:11725
double as< double >(std::any value)
Casts a type into another type.
Definition: as.h:6245
sbyte_t as< sbyte_t >(std::any value)
Casts a type into another type.
Definition: as.h:10345
char as< char >(std::any value)
Casts a type into another type.
Definition: as.h:2225
decimal_t as< decimal_t >(std::any value)
Casts a type into another type.
Definition: as.h:5575
int32_t as< int32_t >(std::any value)
Casts a type into another type.
Definition: as.h:8275
uint16_t as< uint16_t >(std::any value)
Casts a type into another type.
Definition: as.h:11035
bool as< bool >(std::any value)
Casts a type into another type.
Definition: as.h:865
@ e
The E key.
Contains xtd::invalid_cast_exception exception.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd fundamental types.