mirror of
https://github.com/boostorg/lexical_cast.git
synced 2026-07-21 13:23:34 +00:00
Simplify the code by removing the explicit copy optimization that is not profitable on modern compilers (#71)
This commit is contained in:
+396
-399
@@ -241,7 +241,7 @@ limitation of compiler options that you use.
|
||||
* C++ Standard Library based streams now constructed in less cases leading to [*better performance];
|
||||
* less template instantiations and simpler maintainance;
|
||||
* support for `volatile` input types was dropped, following the C++ Standard Library trend.
|
||||
* Optimized formatting for std::basic_string_view and boost::basic_string_view
|
||||
* Optimized conversions from std::basic_string_view and boost::basic_string_view
|
||||
|
||||
* [*boost 1.84.0 :]
|
||||
|
||||
@@ -370,435 +370,432 @@ Do not use this results to compare compilers, because tests were taken on differ
|
||||
[section GNU C++ version 9.4.0]
|
||||
[table:id Performance Table ( GNU C++ version 9.4.0)
|
||||
[[From->To] [lexical_cast] [std::stringstream with construction] [std::stringstream without construction][scanf/printf]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 60 ][ 5 ][ 5 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 7 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 56 ][ 5 ][ 6 ]]
|
||||
[[ string->int ][ !!! *3* !!! ][ 65 ][ 12 ][ 10 ]]
|
||||
[[ string->short ][ !!! *3* !!! ][ 66 ][ 12 ][ 10 ]]
|
||||
[[ string->long int ][ !!! *3* !!! ][ 65 ][ 12 ][ 10 ]]
|
||||
[[ string->long long ][ !!! *3* !!! ][ 61 ][ 12 ][ 10 ]]
|
||||
[[ string->unsigned int ][ !!! *3* !!! ][ 60 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned short ][ !!! *3* !!! ][ 60 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned long int ][ !!! *3* !!! ][ 58 ][ 11 ][ 10 ]]
|
||||
[[ string->unsigned long long ][ !!! *3* !!! ][ 67 ][ 15 ][ 10 ]]
|
||||
[[ string->float ][ 51 ][ 87 ][ 36 ][ !!! *21* !!! ]]
|
||||
[[ string->double ][ 127 ][ 142 ][ 34 ][ !!! *21* !!! ]]
|
||||
[[ string->long double ][ 50 ][ 88 ][ 32 ][ !!! *24* !!! ]]
|
||||
[[ string->array<char, 50> ][ !!! *<1* !!! ][ 58 ][ 10 ][ 8 ]]
|
||||
[[ string->string ][ !!! *1* !!! ][ 56 ][ 12 ][ --- ]]
|
||||
[[ string->container::string ][ !!! *<1* !!! ][ 59 ][ 11 ][ --- ]]
|
||||
[[ string->char ][ !!! *1* !!! ][ 59 ][ 10 ][ 7 ]]
|
||||
[[ string->signed char ][ !!! *1* !!! ][ 60 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned char ][ !!! *1* !!! ][ 63 ][ 10 ][ 10 ]]
|
||||
[[ int->string ][ !!! *4* !!! ][ 65 ][ 13 ][ 10 ]]
|
||||
[[ short->string ][ !!! *4* !!! ][ 71 ][ 14 ][ 10 ]]
|
||||
[[ long int->string ][ !!! *4* !!! ][ 64 ][ 13 ][ 10 ]]
|
||||
[[ long long->string ][ !!! *4* !!! ][ 63 ][ 13 ][ 10 ]]
|
||||
[[ unsigned int->string ][ !!! *4* !!! ][ 65 ][ 15 ][ 10 ]]
|
||||
[[ unsigned short->string ][ !!! *4* !!! ][ 62 ][ 15 ][ 10 ]]
|
||||
[[ unsigned long int->string ][ !!! *4* !!! ][ 75 ][ 14 ][ 10 ]]
|
||||
[[ unsigned long long->string ][ !!! *4* !!! ][ 64 ][ 14 ][ 11 ]]
|
||||
[[ float->string ][ 26 ][ 112 ][ 49 ][ !!! *23* !!! ]]
|
||||
[[ double->string ][ !!! *33* !!! ][ 106 ][ 91 ][ 58 ]]
|
||||
[[ long double->string ][ 105 ][ 276 ][ 133 ][ !!! *66* !!! ]]
|
||||
[[ char*->char ][ !!! *1* !!! ][ 136 ][ 16 ][ 13 ]]
|
||||
[[ char*->signed char ][ !!! *<1* !!! ][ 133 ][ 15 ][ 17 ]]
|
||||
[[ char*->unsigned char ][ !!! *<1* !!! ][ 138 ][ 16 ][ 17 ]]
|
||||
[[ char*->int ][ !!! *9* !!! ][ 152 ][ 34 ][ 25 ]]
|
||||
[[ char*->short ][ !!! *9* !!! ][ 150 ][ 32 ][ 26 ]]
|
||||
[[ char*->long int ][ !!! *9* !!! ][ 159 ][ 33 ][ 25 ]]
|
||||
[[ char*->long long ][ !!! *9* !!! ][ 157 ][ 31 ][ 26 ]]
|
||||
[[ char*->unsigned int ][ !!! *8* !!! ][ 149 ][ 27 ][ 26 ]]
|
||||
[[ char*->unsigned short ][ !!! *8* !!! ][ 140 ][ 27 ][ 25 ]]
|
||||
[[ char*->unsigned long int ][ !!! *8* !!! ][ 150 ][ 29 ][ 25 ]]
|
||||
[[ char*->unsigned long long ][ !!! *8* !!! ][ 156 ][ 31 ][ 25 ]]
|
||||
[[ char*->float ][ 134 ][ 233 ][ 89 ][ !!! *52* !!! ]]
|
||||
[[ char*->double ][ 130 ][ 224 ][ 78 ][ !!! *53* !!! ]]
|
||||
[[ char*->long double ][ 65 ][ 83 ][ 35 ][ !!! *23* !!! ]]
|
||||
[[ char*->array<char, 50> ][ !!! *1* !!! ][ 60 ][ 11 ][ 8 ]]
|
||||
[[ char*->string ][ !!! *1* !!! ][ 61 ][ 12 ][ --- ]]
|
||||
[[ char*->container::string ][ !!! *1* !!! ][ 62 ][ 12 ][ --- ]]
|
||||
[[ unsigned char*->char ][ !!! *<1* !!! ][ 53 ][ 6 ][ 5 ]]
|
||||
[[ unsigned char*->signed char ][ !!! *<1* !!! ][ 53 ][ 7 ][ 7 ]]
|
||||
[[ unsigned char*->unsigned char ][ !!! *<1* !!! ][ 56 ][ 6 ][ 7 ]]
|
||||
[[ unsigned char*->int ][ !!! *3* !!! ][ 62 ][ 13 ][ 10 ]]
|
||||
[[ unsigned char*->short ][ !!! *3* !!! ][ 62 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->long int ][ !!! *3* !!! ][ 66 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->long long ][ !!! *3* !!! ][ 65 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned int ][ !!! *3* !!! ][ 61 ][ 11 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned short ][ !!! *3* !!! ][ 57 ][ 11 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned long int ][ !!! *3* !!! ][ 59 ][ 12 ][ 10 ]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 59 ][ 7 ][ 17 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 142 ][ 13 ][ 21 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 63 ][ 5 ][ 8 ]]
|
||||
[[ string->int ][ !!! *4* !!! ][ 63 ][ 13 ][ 12 ]]
|
||||
[[ string->short ][ !!! *4* !!! ][ 65 ][ 12 ][ 12 ]]
|
||||
[[ string->long int ][ !!! *4* !!! ][ 62 ][ 12 ][ 12 ]]
|
||||
[[ string->long long ][ !!! *3* !!! ][ 61 ][ 13 ][ 12 ]]
|
||||
[[ string->unsigned int ][ !!! *4* !!! ][ 58 ][ 10 ][ 12 ]]
|
||||
[[ string->unsigned short ][ !!! *4* !!! ][ 59 ][ 10 ][ 12 ]]
|
||||
[[ string->unsigned long int ][ !!! *4* !!! ][ 62 ][ 11 ][ 12 ]]
|
||||
[[ string->unsigned long long ][ !!! *4* !!! ][ 64 ][ 11 ][ 12 ]]
|
||||
[[ string->float ][ 59 ][ 92 ][ 35 ][ !!! *23* !!! ]]
|
||||
[[ string->double ][ 55 ][ 89 ][ 31 ][ !!! *23* !!! ]]
|
||||
[[ string->long double ][ 52 ][ 83 ][ 32 ][ !!! *26* !!! ]]
|
||||
[[ string->array<char, 50> ][ !!! *<1* !!! ][ 59 ][ 10 ][ 8 ]]
|
||||
[[ string->string ][ !!! *1* !!! ][ 68 ][ 13 ][ --- ]]
|
||||
[[ string->container::string ][ !!! *<1* !!! ][ 65 ][ 11 ][ --- ]]
|
||||
[[ string->char ][ !!! *1* !!! ][ 58 ][ 10 ][ 7 ]]
|
||||
[[ string->signed char ][ !!! *1* !!! ][ 57 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned char ][ !!! *1* !!! ][ 57 ][ 10 ][ 10 ]]
|
||||
[[ int->string ][ !!! *4* !!! ][ 64 ][ 13 ][ 10 ]]
|
||||
[[ short->string ][ !!! *4* !!! ][ 69 ][ 13 ][ 10 ]]
|
||||
[[ long int->string ][ !!! *4* !!! ][ 68 ][ 13 ][ 10 ]]
|
||||
[[ long long->string ][ !!! *4* !!! ][ 66 ][ 13 ][ 10 ]]
|
||||
[[ unsigned int->string ][ !!! *4* !!! ][ 62 ][ 14 ][ 10 ]]
|
||||
[[ unsigned short->string ][ !!! *4* !!! ][ 66 ][ 13 ][ 10 ]]
|
||||
[[ unsigned long int->string ][ !!! *4* !!! ][ 70 ][ 13 ][ 10 ]]
|
||||
[[ unsigned long long->string ][ !!! *4* !!! ][ 64 ][ 14 ][ 10 ]]
|
||||
[[ float->string ][ 26 ][ 108 ][ 50 ][ !!! *23* !!! ]]
|
||||
[[ double->string ][ 33 ][ 114 ][ 51 ][ !!! *26* !!! ]]
|
||||
[[ long double->string ][ 88 ][ 194 ][ 54 ][ !!! *26* !!! ]]
|
||||
[[ char*->char ][ !!! *<1* !!! ][ 53 ][ 6 ][ 5 ]]
|
||||
[[ char*->signed char ][ !!! *<1* !!! ][ 52 ][ 6 ][ 7 ]]
|
||||
[[ char*->unsigned char ][ !!! *<1* !!! ][ 55 ][ 6 ][ 7 ]]
|
||||
[[ char*->int ][ !!! *4* !!! ][ 67 ][ 12 ][ 10 ]]
|
||||
[[ char*->short ][ !!! *4* !!! ][ 68 ][ 13 ][ 10 ]]
|
||||
[[ char*->long int ][ !!! *3* !!! ][ 68 ][ 13 ][ 10 ]]
|
||||
[[ char*->long long ][ !!! *3* !!! ][ 67 ][ 14 ][ 10 ]]
|
||||
[[ char*->unsigned int ][ !!! *3* !!! ][ 67 ][ 11 ][ 10 ]]
|
||||
[[ char*->unsigned short ][ !!! *3* !!! ][ 61 ][ 11 ][ 11 ]]
|
||||
[[ char*->unsigned long int ][ !!! *3* !!! ][ 61 ][ 13 ][ 10 ]]
|
||||
[[ char*->unsigned long long ][ !!! *3* !!! ][ 67 ][ 13 ][ 10 ]]
|
||||
[[ char*->float ][ 56 ][ 93 ][ 35 ][ !!! *21* !!! ]]
|
||||
[[ char*->double ][ 59 ][ 88 ][ 33 ][ !!! *21* !!! ]]
|
||||
[[ char*->long double ][ 54 ][ 88 ][ 33 ][ !!! *24* !!! ]]
|
||||
[[ char*->array<char, 50> ][ !!! *<1* !!! ][ 63 ][ 11 ][ 8 ]]
|
||||
[[ char*->string ][ !!! *1* !!! ][ 65 ][ 12 ][ --- ]]
|
||||
[[ char*->container::string ][ !!! *<1* !!! ][ 71 ][ 13 ][ --- ]]
|
||||
[[ unsigned char*->char ][ !!! *<1* !!! ][ 57 ][ 6 ][ 5 ]]
|
||||
[[ unsigned char*->signed char ][ !!! *<1* !!! ][ 57 ][ 6 ][ 7 ]]
|
||||
[[ unsigned char*->unsigned char ][ !!! *<1* !!! ][ 63 ][ 5 ][ 6 ]]
|
||||
[[ unsigned char*->int ][ !!! *4* !!! ][ 63 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->short ][ !!! *4* !!! ][ 65 ][ 13 ][ 10 ]]
|
||||
[[ unsigned char*->long int ][ !!! *3* !!! ][ 67 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->long long ][ !!! *3* !!! ][ 66 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned int ][ !!! *3* !!! ][ 64 ][ 11 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned short ][ !!! *3* !!! ][ 65 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned long int ][ !!! *3* !!! ][ 60 ][ 13 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned long long ][ !!! *3* !!! ][ 62 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->float ][ 54 ][ 93 ][ 36 ][ !!! *21* !!! ]]
|
||||
[[ unsigned char*->double ][ 52 ][ 89 ][ 31 ][ !!! *21* !!! ]]
|
||||
[[ unsigned char*->long double ][ 51 ][ 87 ][ 32 ][ !!! *24* !!! ]]
|
||||
[[ unsigned char*->array<char, 50> ][ !!! *1* !!! ][ 60 ][ 12 ][ 8 ]]
|
||||
[[ unsigned char*->string ][ !!! *1* !!! ][ 69 ][ 13 ][ --- ]]
|
||||
[[ unsigned char*->container::string ][ !!! *1* !!! ][ 65 ][ 12 ][ --- ]]
|
||||
[[ signed char*->char ][ !!! *<1* !!! ][ 59 ][ 6 ][ 5 ]]
|
||||
[[ signed char*->signed char ][ !!! *<1* !!! ][ 54 ][ 6 ][ 6 ]]
|
||||
[[ signed char*->unsigned char ][ !!! *<1* !!! ][ 59 ][ 6 ][ 7 ]]
|
||||
[[ signed char*->int ][ !!! *3* !!! ][ 66 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->short ][ !!! *3* !!! ][ 60 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->long int ][ !!! *3* !!! ][ 60 ][ 14 ][ 10 ]]
|
||||
[[ signed char*->long long ][ !!! *3* !!! ][ 68 ][ 13 ][ 10 ]]
|
||||
[[ signed char*->unsigned int ][ !!! *3* !!! ][ 60 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned short ][ !!! *3* !!! ][ 66 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned long int ][ !!! *3* !!! ][ 65 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->unsigned long long ][ !!! *3* !!! ][ 67 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->float ][ 59 ][ 87 ][ 36 ][ !!! *21* !!! ]]
|
||||
[[ signed char*->double ][ 69 ][ 197 ][ 30 ][ !!! *21* !!! ]]
|
||||
[[ signed char*->long double ][ 50 ][ 86 ][ 30 ][ !!! *23* !!! ]]
|
||||
[[ signed char*->array<char, 50> ][ !!! *1* !!! ][ 59 ][ 11 ][ 8 ]]
|
||||
[[ signed char*->string ][ !!! *1* !!! ][ 63 ][ 13 ][ --- ]]
|
||||
[[ signed char*->container::string ][ !!! *1* !!! ][ 62 ][ 12 ][ --- ]]
|
||||
[[ iterator_range<char*>->char ][ !!! *<1* !!! ][ 51 ][ 5 ][ 5 ]]
|
||||
[[ iterator_range<char*>->signed char ][ !!! *<1* !!! ][ 54 ][ 5 ][ 7 ]]
|
||||
[[ iterator_range<char*>->unsigned char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 6 ]]
|
||||
[[ iterator_range<char*>->int ][ !!! *3* !!! ][ 70 ][ 18 ][ 10 ]]
|
||||
[[ iterator_range<char*>->short ][ !!! *3* !!! ][ 67 ][ 16 ][ 10 ]]
|
||||
[[ iterator_range<char*>->long int ][ !!! *3* !!! ][ 66 ][ 16 ][ 10 ]]
|
||||
[[ iterator_range<char*>->long long ][ !!! *3* !!! ][ 63 ][ 17 ][ 10 ]]
|
||||
[[ iterator_range<char*>->unsigned int ][ !!! *3* !!! ][ 62 ][ 14 ][ 10 ]]
|
||||
[[ iterator_range<char*>->unsigned short ][ !!! *3* !!! ][ 64 ][ 14 ][ 10 ]]
|
||||
[[ iterator_range<char*>->unsigned long int ][ !!! *3* !!! ][ 64 ][ 15 ][ 10 ]]
|
||||
[[ iterator_range<char*>->unsigned long long ][ !!! *3* !!! ][ 68 ][ 15 ][ 10 ]]
|
||||
[[ iterator_range<char*>->float ][ 56 ][ 97 ][ 44 ][ !!! *21* !!! ]]
|
||||
[[ iterator_range<char*>->double ][ 54 ][ 95 ][ 40 ][ !!! *21* !!! ]]
|
||||
[[ iterator_range<char*>->long double ][ 50 ][ 93 ][ 39 ][ !!! *23* !!! ]]
|
||||
[[ iterator_range<char*>->array<char, 50> ][ !!! *<1* !!! ][ 69 ][ 18 ][ 8 ]]
|
||||
[[ iterator_range<char*>->string ][ !!! *1* !!! ][ 74 ][ 21 ][ --- ]]
|
||||
[[ iterator_range<char*>->container::string ][ !!! *<1* !!! ][ 71 ][ 21 ][ --- ]]
|
||||
[[ std::string_view->char ][ !!! *<1* !!! ][ 55 ][ 5 ][ 5 ]]
|
||||
[[ std::string_view->signed char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 7 ]]
|
||||
[[ std::string_view->unsigned char ][ !!! *<1* !!! ][ 54 ][ 5 ][ 7 ]]
|
||||
[[ std::string_view->int ][ !!! *4* !!! ][ 65 ][ 12 ][ 10 ]]
|
||||
[[ std::string_view->short ][ !!! *4* !!! ][ 66 ][ 12 ][ 10 ]]
|
||||
[[ std::string_view->long int ][ !!! *3* !!! ][ 62 ][ 12 ][ 10 ]]
|
||||
[[ std::string_view->long long ][ !!! *3* !!! ][ 112 ][ 30 ][ 25 ]]
|
||||
[[ std::string_view->unsigned int ][ !!! *8* !!! ][ 88 ][ 10 ][ 10 ]]
|
||||
[[ std::string_view->unsigned short ][ !!! *3* !!! ][ 60 ][ 10 ][ 10 ]]
|
||||
[[ std::string_view->unsigned long int ][ !!! *3* !!! ][ 60 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->unsigned long long ][ !!! *3* !!! ][ 62 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->float ][ 53 ][ 87 ][ 35 ][ !!! *21* !!! ]]
|
||||
[[ std::string_view->double ][ 54 ][ 93 ][ 34 ][ !!! *21* !!! ]]
|
||||
[[ std::string_view->long double ][ 52 ][ 94 ][ 30 ][ !!! *24* !!! ]]
|
||||
[[ std::string_view->array<char, 50> ][ !!! *1* !!! ][ 64 ][ 11 ][ 8 ]]
|
||||
[[ std::string_view->string ][ !!! *1* !!! ][ 58 ][ 13 ][ --- ]]
|
||||
[[ std::string_view->container::string ][ !!! *3* !!! ][ 68 ][ 13 ][ --- ]]
|
||||
[[ array<char, 50>->char ][ !!! *<1* !!! ][ 52 ][ 5 ][ 5 ]]
|
||||
[[ array<char, 50>->signed char ][ !!! *<1* !!! ][ 57 ][ 6 ][ 7 ]]
|
||||
[[ unsigned char*->float ][ 57 ][ 94 ][ 34 ][ !!! *21* !!! ]]
|
||||
[[ unsigned char*->double ][ 60 ][ 88 ][ 35 ][ !!! *21* !!! ]]
|
||||
[[ unsigned char*->long double ][ 54 ][ 89 ][ 32 ][ !!! *24* !!! ]]
|
||||
[[ unsigned char*->array<char, 50> ][ !!! *<1* !!! ][ 68 ][ 12 ][ 8 ]]
|
||||
[[ unsigned char*->string ][ !!! *1* !!! ][ 61 ][ 13 ][ --- ]]
|
||||
[[ unsigned char*->container::string ][ !!! *<1* !!! ][ 66 ][ 12 ][ --- ]]
|
||||
[[ signed char*->char ][ !!! *<1* !!! ][ 58 ][ 6 ][ 5 ]]
|
||||
[[ signed char*->signed char ][ !!! *<1* !!! ][ 59 ][ 6 ][ 7 ]]
|
||||
[[ signed char*->unsigned char ][ !!! *<1* !!! ][ 57 ][ 6 ][ 7 ]]
|
||||
[[ signed char*->int ][ !!! *4* !!! ][ 68 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->short ][ !!! *4* !!! ][ 68 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->long int ][ !!! *3* !!! ][ 69 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->long long ][ !!! *3* !!! ][ 61 ][ 12 ][ 11 ]]
|
||||
[[ signed char*->unsigned int ][ !!! *3* !!! ][ 59 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned short ][ !!! *3* !!! ][ 58 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned long int ][ !!! *3* !!! ][ 59 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->unsigned long long ][ !!! *3* !!! ][ 68 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->float ][ 55 ][ 93 ][ 39 ][ !!! *22* !!! ]]
|
||||
[[ signed char*->double ][ 56 ][ 95 ][ 34 ][ !!! *23* !!! ]]
|
||||
[[ signed char*->long double ][ 58 ][ 89 ][ 32 ][ !!! *23* !!! ]]
|
||||
[[ signed char*->array<char, 50> ][ !!! *<1* !!! ][ 70 ][ 11 ][ 8 ]]
|
||||
[[ signed char*->string ][ !!! *1* !!! ][ 64 ][ 15 ][ --- ]]
|
||||
[[ signed char*->container::string ][ !!! *1* !!! ][ 67 ][ 13 ][ --- ]]
|
||||
[[ iterator_range<char*>->char ][ !!! *<1* !!! ][ 62 ][ 6 ][ 7 ]]
|
||||
[[ iterator_range<char*>->signed char ][ !!! *<1* !!! ][ 56 ][ 6 ][ 8 ]]
|
||||
[[ iterator_range<char*>->unsigned char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 11 ]]
|
||||
[[ iterator_range<char*>->int ][ !!! *4* !!! ][ 75 ][ 16 ][ 12 ]]
|
||||
[[ iterator_range<char*>->short ][ !!! *3* !!! ][ 69 ][ 16 ][ 12 ]]
|
||||
[[ iterator_range<char*>->long int ][ !!! *3* !!! ][ 66 ][ 21 ][ 12 ]]
|
||||
[[ iterator_range<char*>->long long ][ !!! *3* !!! ][ 70 ][ 15 ][ 12 ]]
|
||||
[[ iterator_range<char*>->unsigned int ][ !!! *3* !!! ][ 67 ][ 16 ][ 12 ]]
|
||||
[[ iterator_range<char*>->unsigned short ][ !!! *3* !!! ][ 64 ][ 14 ][ 12 ]]
|
||||
[[ iterator_range<char*>->unsigned long int ][ !!! *3* !!! ][ 66 ][ 15 ][ 12 ]]
|
||||
[[ iterator_range<char*>->unsigned long long ][ !!! *3* !!! ][ 72 ][ 17 ][ 12 ]]
|
||||
[[ iterator_range<char*>->float ][ 55 ][ 100 ][ 42 ][ !!! *23* !!! ]]
|
||||
[[ iterator_range<char*>->double ][ 54 ][ 100 ][ 40 ][ !!! *23* !!! ]]
|
||||
[[ iterator_range<char*>->long double ][ 56 ][ 100 ][ 39 ][ !!! *25* !!! ]]
|
||||
[[ iterator_range<char*>->array<char, 50> ][ !!! *<1* !!! ][ 69 ][ 20 ][ 10 ]]
|
||||
[[ iterator_range<char*>->string ][ !!! *1* !!! ][ 72 ][ 21 ][ --- ]]
|
||||
[[ iterator_range<char*>->container::string ][ !!! *<1* !!! ][ 82 ][ 21 ][ --- ]]
|
||||
[[ std::string_view->char ][ !!! *<1* !!! ][ 65 ][ 5 ][ 8 ]]
|
||||
[[ std::string_view->signed char ][ !!! *<1* !!! ][ 61 ][ 6 ][ 10 ]]
|
||||
[[ std::string_view->unsigned char ][ !!! *<1* !!! ][ 56 ][ 5 ][ 9 ]]
|
||||
[[ std::string_view->int ][ !!! *4* !!! ][ 59 ][ 12 ][ 14 ]]
|
||||
[[ std::string_view->short ][ !!! *4* !!! ][ 63 ][ 12 ][ 14 ]]
|
||||
[[ std::string_view->long int ][ !!! *4* !!! ][ 61 ][ 11 ][ 13 ]]
|
||||
[[ std::string_view->long long ][ !!! *4* !!! ][ 58 ][ 13 ][ 14 ]]
|
||||
[[ std::string_view->unsigned int ][ !!! *3* !!! ][ 65 ][ 10 ][ 13 ]]
|
||||
[[ std::string_view->unsigned short ][ !!! *3* !!! ][ 64 ][ 10 ][ 14 ]]
|
||||
[[ std::string_view->unsigned long int ][ !!! *3* !!! ][ 64 ][ 12 ][ 13 ]]
|
||||
[[ std::string_view->unsigned long long ][ !!! *3* !!! ][ 65 ][ 11 ][ 14 ]]
|
||||
[[ std::string_view->float ][ 55 ][ 89 ][ 35 ][ !!! *24* !!! ]]
|
||||
[[ std::string_view->double ][ 53 ][ 87 ][ 36 ][ !!! *25* !!! ]]
|
||||
[[ std::string_view->long double ][ 56 ][ 93 ][ 34 ][ !!! *28* !!! ]]
|
||||
[[ std::string_view->array<char, 50> ][ !!! *1* !!! ][ 64 ][ 10 ][ 11 ]]
|
||||
[[ std::string_view->string ][ !!! *1* !!! ][ 62 ][ 11 ][ --- ]]
|
||||
[[ std::string_view->container::string ][ !!! *1* !!! ][ 65 ][ 11 ][ --- ]]
|
||||
[[ array<char, 50>->char ][ !!! *<1* !!! ][ 54 ][ 6 ][ 5 ]]
|
||||
[[ array<char, 50>->signed char ][ !!! *<1* !!! ][ 54 ][ 5 ][ 7 ]]
|
||||
[[ array<char, 50>->unsigned char ][ !!! *<1* !!! ][ 53 ][ 6 ][ 6 ]]
|
||||
[[ array<char, 50>->int ][ !!! *3* !!! ][ 59 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->short ][ !!! *3* !!! ][ 64 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->long int ][ !!! *3* !!! ][ 60 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->long long ][ !!! *3* !!! ][ 62 ][ 13 ][ 10 ]]
|
||||
[[ array<char, 50>->int ][ !!! *2* !!! ][ 59 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->short ][ !!! *3* !!! ][ 58 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->long int ][ !!! *3* !!! ][ 57 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->long long ][ !!! *3* !!! ][ 60 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned int ][ !!! *3* !!! ][ 60 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned short ][ !!! *2* !!! ][ 59 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned long int ][ !!! *3* !!! ][ 58 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned long long ][ !!! *3* !!! ][ 60 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->float ][ 54 ][ 89 ][ 35 ][ !!! *21* !!! ]]
|
||||
[[ array<char, 50>->double ][ 51 ][ 86 ][ 34 ][ !!! *23* !!! ]]
|
||||
[[ array<char, 50>->long double ][ 49 ][ 84 ][ 31 ][ !!! *23* !!! ]]
|
||||
[[ array<char, 50>->array<char, 50> ][ !!! *<1* !!! ][ 58 ][ 12 ][ 8 ]]
|
||||
[[ array<char, 50>->string ][ !!! *1* !!! ][ 58 ][ 12 ][ --- ]]
|
||||
[[ array<char, 50>->container::string ][ !!! *1* !!! ][ 57 ][ 12 ][ --- ]]
|
||||
[[ int->int ][ !!! *<1* !!! ][ 61 ][ 15 ][ --- ]]
|
||||
[[ float->double ][ !!! *<1* !!! ][ 133 ][ 74 ][ --- ]]
|
||||
[[ char->signed char ][ !!! *<1* !!! ][ 55 ][ 6 ][ --- ]]
|
||||
[[ array<char, 50>->unsigned short ][ !!! *3* !!! ][ 58 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned long int ][ !!! *3* !!! ][ 61 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned long long ][ !!! *3* !!! ][ 59 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->float ][ 52 ][ 89 ][ 35 ][ !!! *21* !!! ]]
|
||||
[[ array<char, 50>->double ][ 50 ][ 91 ][ 33 ][ !!! *21* !!! ]]
|
||||
[[ array<char, 50>->long double ][ 52 ][ 83 ][ 33 ][ !!! *23* !!! ]]
|
||||
[[ array<char, 50>->array<char, 50> ][ !!! *<1* !!! ][ 59 ][ 11 ][ 8 ]]
|
||||
[[ array<char, 50>->string ][ !!! *1* !!! ][ 66 ][ 13 ][ --- ]]
|
||||
[[ array<char, 50>->container::string ][ !!! *1* !!! ][ 61 ][ 12 ][ --- ]]
|
||||
[[ int->int ][ !!! *<1* !!! ][ 61 ][ 14 ][ --- ]]
|
||||
[[ float->double ][ !!! *<1* !!! ][ 136 ][ 72 ][ --- ]]
|
||||
[[ char->signed char ][ !!! *<1* !!! ][ 54 ][ 5 ][ --- ]]
|
||||
]
|
||||
[endsect]
|
||||
|
||||
[section Clang version 15.0.7 ]
|
||||
[table:id Performance Table ( Clang version 15.0.7 )
|
||||
[[From->To] [lexical_cast] [std::stringstream with construction] [std::stringstream without construction][scanf/printf]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 66 ][ 5 ][ 6 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 7 ]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 68 ][ 5 ][ 6 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 59 ][ 5 ][ 7 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 59 ][ 5 ][ 7 ]]
|
||||
[[ string->int ][ !!! *3* !!! ][ 65 ][ 12 ][ 10 ]]
|
||||
[[ string->short ][ !!! *3* !!! ][ 68 ][ 12 ][ 11 ]]
|
||||
[[ string->int ][ !!! *3* !!! ][ 69 ][ 11 ][ 10 ]]
|
||||
[[ string->short ][ !!! *3* !!! ][ 64 ][ 11 ][ 10 ]]
|
||||
[[ string->long int ][ !!! *3* !!! ][ 65 ][ 11 ][ 10 ]]
|
||||
[[ string->long long ][ !!! *3* !!! ][ 68 ][ 11 ][ 11 ]]
|
||||
[[ string->unsigned int ][ !!! *3* !!! ][ 64 ][ 10 ][ 11 ]]
|
||||
[[ string->unsigned short ][ !!! *3* !!! ][ 70 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned long int ][ !!! *3* !!! ][ 72 ][ 13 ][ 11 ]]
|
||||
[[ string->unsigned long long ][ !!! *3* !!! ][ 67 ][ 11 ][ 11 ]]
|
||||
[[ string->float ][ 58 ][ 93 ][ 35 ][ !!! *21* !!! ]]
|
||||
[[ string->double ][ 56 ][ 94 ][ 30 ][ !!! *23* !!! ]]
|
||||
[[ string->long double ][ 59 ][ 97 ][ 35 ][ !!! *25* !!! ]]
|
||||
[[ string->array<char, 50> ][ !!! *<1* !!! ][ 75 ][ 10 ][ 9 ]]
|
||||
[[ string->string ][ !!! *1* !!! ][ 67 ][ 11 ][ --- ]]
|
||||
[[ string->container::string ][ !!! *<1* !!! ][ 70 ][ 15 ][ --- ]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 68 ][ 9 ][ 1 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 65 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 62 ][ 9 ][ 10 ]]
|
||||
[[ int->string ][ !!! *4* !!! ][ 66 ][ 13 ][ 10 ]]
|
||||
[[ short->string ][ !!! *4* !!! ][ 69 ][ 14 ][ 9 ]]
|
||||
[[ long int->string ][ !!! *4* !!! ][ 67 ][ 13 ][ 9 ]]
|
||||
[[ string->long long ][ !!! *3* !!! ][ 68 ][ 13 ][ 10 ]]
|
||||
[[ string->unsigned int ][ !!! *3* !!! ][ 65 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned short ][ !!! *3* !!! ][ 64 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned long int ][ !!! *3* !!! ][ 62 ][ 11 ][ 10 ]]
|
||||
[[ string->unsigned long long ][ !!! *3* !!! ][ 64 ][ 11 ][ 10 ]]
|
||||
[[ string->float ][ 55 ][ 90 ][ 33 ][ !!! *22* !!! ]]
|
||||
[[ string->double ][ 56 ][ 89 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ string->long double ][ 55 ][ 92 ][ 32 ][ !!! *23* !!! ]]
|
||||
[[ string->array<char, 50> ][ !!! *<1* !!! ][ 66 ][ 10 ][ 8 ]]
|
||||
[[ string->string ][ !!! *1* !!! ][ 66 ][ 12 ][ --- ]]
|
||||
[[ string->container::string ][ !!! *<1* !!! ][ 66 ][ 15 ][ --- ]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 61 ][ 9 ][ 1 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 62 ][ 9 ][ 10 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 59 ][ 9 ][ 10 ]]
|
||||
[[ int->string ][ !!! *4* !!! ][ 63 ][ 13 ][ 9 ]]
|
||||
[[ short->string ][ !!! *4* !!! ][ 69 ][ 13 ][ 10 ]]
|
||||
[[ long int->string ][ !!! *4* !!! ][ 67 ][ 13 ][ 10 ]]
|
||||
[[ long long->string ][ !!! *4* !!! ][ 65 ][ 13 ][ 10 ]]
|
||||
[[ unsigned int->string ][ !!! *4* !!! ][ 74 ][ 12 ][ 9 ]]
|
||||
[[ unsigned short->string ][ !!! *4* !!! ][ 70 ][ 12 ][ 9 ]]
|
||||
[[ unsigned long int->string ][ !!! *4* !!! ][ 71 ][ 12 ][ 9 ]]
|
||||
[[ unsigned long long->string ][ !!! *4* !!! ][ 68 ][ 13 ][ 10 ]]
|
||||
[[ float->string ][ 25 ][ 108 ][ 50 ][ !!! *22* !!! ]]
|
||||
[[ double->string ][ 31 ][ 118 ][ 46 ][ !!! *22* !!! ]]
|
||||
[[ long double->string ][ 43 ][ 125 ][ 51 ][ !!! *25* !!! ]]
|
||||
[[ char*->char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 5 ]]
|
||||
[[ char*->signed char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 7 ]]
|
||||
[[ char*->unsigned char ][ !!! *<1* !!! ][ 58 ][ 6 ][ 7 ]]
|
||||
[[ char*->int ][ !!! *2* !!! ][ 70 ][ 12 ][ 11 ]]
|
||||
[[ char*->short ][ !!! *3* !!! ][ 67 ][ 12 ][ 11 ]]
|
||||
[[ char*->long int ][ !!! *3* !!! ][ 68 ][ 11 ][ 11 ]]
|
||||
[[ char*->long long ][ !!! *3* !!! ][ 63 ][ 13 ][ 11 ]]
|
||||
[[ char*->unsigned int ][ !!! *2* !!! ][ 60 ][ 10 ][ 11 ]]
|
||||
[[ char*->unsigned short ][ !!! *2* !!! ][ 63 ][ 10 ][ 11 ]]
|
||||
[[ char*->unsigned long int ][ !!! *3* !!! ][ 68 ][ 11 ][ 11 ]]
|
||||
[[ char*->unsigned long long ][ !!! *3* !!! ][ 67 ][ 11 ][ 11 ]]
|
||||
[[ char*->float ][ 55 ][ 96 ][ 37 ][ !!! *21* !!! ]]
|
||||
[[ char*->double ][ 55 ][ 95 ][ 33 ][ !!! *22* !!! ]]
|
||||
[[ char*->long double ][ 51 ][ 88 ][ 34 ][ !!! *25* !!! ]]
|
||||
[[ char*->array<char, 50> ][ !!! *<1* !!! ][ 61 ][ 11 ][ 9 ]]
|
||||
[[ char*->string ][ !!! *1* !!! ][ 78 ][ 11 ][ --- ]]
|
||||
[[ char*->container::string ][ !!! *1* !!! ][ 75 ][ 15 ][ --- ]]
|
||||
[[ unsigned char*->char ][ !!! *<1* !!! ][ 65 ][ 5 ][ 5 ]]
|
||||
[[ unsigned char*->signed char ][ !!! *<1* !!! ][ 61 ][ 5 ][ 7 ]]
|
||||
[[ unsigned char*->unsigned char ][ !!! *<1* !!! ][ 60 ][ 5 ][ 7 ]]
|
||||
[[ unsigned char*->int ][ !!! *6* !!! ][ 161 ][ 29 ][ 15 ]]
|
||||
[[ unsigned char*->short ][ !!! *2* !!! ][ 68 ][ 11 ][ 11 ]]
|
||||
[[ unsigned char*->long int ][ !!! *3* !!! ][ 69 ][ 11 ][ 11 ]]
|
||||
[[ unsigned char*->long long ][ !!! *3* !!! ][ 64 ][ 12 ][ 11 ]]
|
||||
[[ unsigned char*->unsigned int ][ !!! *2* !!! ][ 65 ][ 10 ][ 11 ]]
|
||||
[[ unsigned char*->unsigned short ][ !!! *2* !!! ][ 63 ][ 10 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned long int ][ !!! *3* !!! ][ 63 ][ 11 ][ 11 ]]
|
||||
[[ unsigned char*->unsigned long long ][ !!! *3* !!! ][ 65 ][ 11 ][ 11 ]]
|
||||
[[ unsigned char*->float ][ 54 ][ 89 ][ 34 ][ !!! *21* !!! ]]
|
||||
[[ unsigned char*->double ][ 55 ][ 90 ][ 33 ][ !!! *23* !!! ]]
|
||||
[[ unsigned char*->long double ][ 53 ][ 90 ][ 32 ][ !!! *23* !!! ]]
|
||||
[[ unsigned char*->array<char, 50> ][ !!! *<1* !!! ][ 65 ][ 10 ][ 9 ]]
|
||||
[[ unsigned char*->string ][ !!! *1* !!! ][ 64 ][ 12 ][ --- ]]
|
||||
[[ unsigned char*->container::string ][ !!! *1* !!! ][ 67 ][ 14 ][ --- ]]
|
||||
[[ signed char*->char ][ !!! *<1* !!! ][ 56 ][ 5 ][ 6 ]]
|
||||
[[ signed char*->signed char ][ !!! *<1* !!! ][ 60 ][ 5 ][ 7 ]]
|
||||
[[ signed char*->unsigned char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 7 ]]
|
||||
[[ signed char*->int ][ !!! *2* !!! ][ 70 ][ 12 ][ 11 ]]
|
||||
[[ signed char*->short ][ !!! *2* !!! ][ 66 ][ 11 ][ 11 ]]
|
||||
[[ signed char*->long int ][ !!! *3* !!! ][ 68 ][ 11 ][ 11 ]]
|
||||
[[ signed char*->long long ][ !!! *3* !!! ][ 71 ][ 13 ][ 11 ]]
|
||||
[[ signed char*->unsigned int ][ !!! *2* !!! ][ 70 ][ 10 ][ 10 ]]
|
||||
[[ signed char*->unsigned short ][ !!! *2* !!! ][ 63 ][ 10 ][ 11 ]]
|
||||
[[ signed char*->unsigned long int ][ !!! *3* !!! ][ 62 ][ 12 ][ 11 ]]
|
||||
[[ signed char*->unsigned long long ][ !!! *3* !!! ][ 64 ][ 11 ][ 11 ]]
|
||||
[[ signed char*->float ][ 54 ][ 91 ][ 34 ][ !!! *21* !!! ]]
|
||||
[[ signed char*->double ][ 56 ][ 94 ][ 31 ][ !!! *22* !!! ]]
|
||||
[[ signed char*->long double ][ 53 ][ 93 ][ 33 ][ !!! *24* !!! ]]
|
||||
[[ signed char*->array<char, 50> ][ !!! *<1* !!! ][ 147 ][ 26 ][ 21 ]]
|
||||
[[ signed char*->string ][ !!! *2* !!! ][ 80 ][ 11 ][ --- ]]
|
||||
[[ signed char*->container::string ][ !!! *1* !!! ][ 67 ][ 15 ][ --- ]]
|
||||
[[ iterator_range<char*>->char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 5 ]]
|
||||
[[ iterator_range<char*>->signed char ][ !!! *<1* !!! ][ 57 ][ 7 ][ 7 ]]
|
||||
[[ iterator_range<char*>->unsigned char ][ !!! *<1* !!! ][ 56 ][ 5 ][ 7 ]]
|
||||
[[ iterator_range<char*>->int ][ !!! *3* !!! ][ 69 ][ 15 ][ 11 ]]
|
||||
[[ iterator_range<char*>->short ][ !!! *2* !!! ][ 73 ][ 15 ][ 11 ]]
|
||||
[[ iterator_range<char*>->long int ][ !!! *3* !!! ][ 76 ][ 15 ][ 11 ]]
|
||||
[[ iterator_range<char*>->long long ][ !!! *3* !!! ][ 69 ][ 15 ][ 11 ]]
|
||||
[[ iterator_range<char*>->unsigned int ][ !!! *2* !!! ][ 69 ][ 14 ][ 11 ]]
|
||||
[[ iterator_range<char*>->unsigned short ][ !!! *2* !!! ][ 68 ][ 13 ][ 11 ]]
|
||||
[[ iterator_range<char*>->unsigned long int ][ !!! *3* !!! ][ 69 ][ 14 ][ 11 ]]
|
||||
[[ iterator_range<char*>->unsigned long long ][ !!! *3* !!! ][ 71 ][ 15 ][ 11 ]]
|
||||
[[ iterator_range<char*>->float ][ 59 ][ 111 ][ 41 ][ !!! *22* !!! ]]
|
||||
[[ iterator_range<char*>->double ][ 56 ][ 107 ][ 39 ][ !!! *22* !!! ]]
|
||||
[[ iterator_range<char*>->long double ][ 53 ][ 101 ][ 39 ][ !!! *23* !!! ]]
|
||||
[[ iterator_range<char*>->array<char, 50> ][ !!! *<1* !!! ][ 73 ][ 17 ][ 9 ]]
|
||||
[[ iterator_range<char*>->string ][ !!! *1* !!! ][ 86 ][ 20 ][ --- ]]
|
||||
[[ iterator_range<char*>->container::string ][ !!! *<1* !!! ][ 86 ][ 27 ][ --- ]]
|
||||
[[ std::string_view->char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 5 ]]
|
||||
[[ std::string_view->signed char ][ !!! *<1* !!! ][ 67 ][ 5 ][ 7 ]]
|
||||
[[ std::string_view->unsigned char ][ !!! *<1* !!! ][ 58 ][ 5 ][ 7 ]]
|
||||
[[ std::string_view->int ][ !!! *2* !!! ][ 64 ][ 11 ][ 11 ]]
|
||||
[[ std::string_view->short ][ !!! *2* !!! ][ 64 ][ 11 ][ 11 ]]
|
||||
[[ std::string_view->long int ][ !!! *3* !!! ][ 63 ][ 11 ][ 11 ]]
|
||||
[[ std::string_view->long long ][ !!! *3* !!! ][ 67 ][ 13 ][ 11 ]]
|
||||
[[ std::string_view->unsigned int ][ !!! *2* !!! ][ 63 ][ 10 ][ 11 ]]
|
||||
[[ std::string_view->unsigned short ][ !!! *2* !!! ][ 80 ][ 25 ][ 26 ]]
|
||||
[[ std::string_view->unsigned long int ][ !!! *7* !!! ][ 126 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->unsigned long long ][ !!! *3* !!! ][ 65 ][ 11 ][ 11 ]]
|
||||
[[ std::string_view->float ][ 59 ][ 101 ][ 35 ][ !!! *21* !!! ]]
|
||||
[[ std::string_view->double ][ 51 ][ 91 ][ 31 ][ !!! *22* !!! ]]
|
||||
[[ std::string_view->long double ][ 57 ][ 88 ][ 34 ][ !!! *23* !!! ]]
|
||||
[[ std::string_view->array<char, 50> ][ !!! *<1* !!! ][ 65 ][ 10 ][ 9 ]]
|
||||
[[ std::string_view->string ][ !!! *1* !!! ][ 63 ][ 12 ][ --- ]]
|
||||
[[ std::string_view->container::string ][ !!! *2* !!! ][ 68 ][ 15 ][ --- ]]
|
||||
[[ array<char, 50>->char ][ !!! *<1* !!! ][ 56 ][ 5 ][ 6 ]]
|
||||
[[ array<char, 50>->signed char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 7 ]]
|
||||
[[ array<char, 50>->unsigned char ][ !!! *<1* !!! ][ 55 ][ 5 ][ 7 ]]
|
||||
[[ array<char, 50>->int ][ !!! *3* !!! ][ 66 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->short ][ !!! *3* !!! ][ 73 ][ 11 ][ 11 ]]
|
||||
[[ array<char, 50>->long int ][ !!! *3* !!! ][ 64 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->long long ][ !!! *3* !!! ][ 64 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned int ][ !!! *3* !!! ][ 63 ][ 10 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned short ][ !!! *3* !!! ][ 67 ][ 10 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned long int ][ !!! *3* !!! ][ 69 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned long long ][ !!! *3* !!! ][ 66 ][ 11 ][ 11 ]]
|
||||
[[ array<char, 50>->float ][ 62 ][ 96 ][ 34 ][ !!! *21* !!! ]]
|
||||
[[ array<char, 50>->double ][ 62 ][ 104 ][ 34 ][ !!! *24* !!! ]]
|
||||
[[ array<char, 50>->long double ][ 56 ][ 92 ][ 32 ][ !!! *23* !!! ]]
|
||||
[[ array<char, 50>->array<char, 50> ][ !!! *<1* !!! ][ 63 ][ 10 ][ 9 ]]
|
||||
[[ array<char, 50>->string ][ !!! *1* !!! ][ 71 ][ 11 ][ --- ]]
|
||||
[[ array<char, 50>->container::string ][ !!! *1* !!! ][ 65 ][ 23 ][ --- ]]
|
||||
[[ int->int ][ !!! *<1* !!! ][ 70 ][ 14 ][ --- ]]
|
||||
[[ float->double ][ !!! *<1* !!! ][ 143 ][ 78 ][ --- ]]
|
||||
[[ char->signed char ][ !!! *<1* !!! ][ 59 ][ 5 ][ --- ]]
|
||||
[[ unsigned int->string ][ !!! *4* !!! ][ 66 ][ 13 ][ 10 ]]
|
||||
[[ unsigned short->string ][ !!! *4* !!! ][ 67 ][ 13 ][ 10 ]]
|
||||
[[ unsigned long int->string ][ !!! *4* !!! ][ 66 ][ 12 ][ 10 ]]
|
||||
[[ unsigned long long->string ][ !!! *4* !!! ][ 67 ][ 13 ][ 10 ]]
|
||||
[[ float->string ][ 25 ][ 108 ][ 47 ][ !!! *22* !!! ]]
|
||||
[[ double->string ][ !!! *32* !!! ][ 130 ][ 116 ][ 56 ]]
|
||||
[[ long double->string ][ 103 ][ 266 ][ 123 ][ !!! *64* !!! ]]
|
||||
[[ char*->char ][ !!! *<1* !!! ][ 129 ][ 13 ][ 14 ]]
|
||||
[[ char*->signed char ][ !!! *<1* !!! ][ 131 ][ 13 ][ 17 ]]
|
||||
[[ char*->unsigned char ][ !!! *<1* !!! ][ 133 ][ 13 ][ 17 ]]
|
||||
[[ char*->int ][ !!! *7* !!! ][ 154 ][ 32 ][ 26 ]]
|
||||
[[ char*->short ][ !!! *7* !!! ][ 161 ][ 29 ][ 27 ]]
|
||||
[[ char*->long int ][ !!! *7* !!! ][ 159 ][ 30 ][ 27 ]]
|
||||
[[ char*->long long ][ !!! *7* !!! ][ 158 ][ 28 ][ 26 ]]
|
||||
[[ char*->unsigned int ][ !!! *7* !!! ][ 146 ][ 26 ][ 26 ]]
|
||||
[[ char*->unsigned short ][ !!! *7* !!! ][ 150 ][ 26 ][ 26 ]]
|
||||
[[ char*->unsigned long int ][ !!! *7* !!! ][ 159 ][ 28 ][ 26 ]]
|
||||
[[ char*->unsigned long long ][ !!! *7* !!! ][ 158 ][ 30 ][ 27 ]]
|
||||
[[ char*->float ][ 123 ][ 207 ][ 78 ][ !!! *54* !!! ]]
|
||||
[[ char*->double ][ 135 ][ 218 ][ 77 ][ !!! *54* !!! ]]
|
||||
[[ char*->long double ][ 130 ][ 216 ][ 82 ][ !!! *59* !!! ]]
|
||||
[[ char*->array<char, 50> ][ !!! *<1* !!! ][ 153 ][ 25 ][ 21 ]]
|
||||
[[ char*->string ][ !!! *2* !!! ][ 159 ][ 31 ][ --- ]]
|
||||
[[ char*->container::string ][ !!! *3* !!! ][ 151 ][ 15 ][ --- ]]
|
||||
[[ unsigned char*->char ][ !!! *<1* !!! ][ 56 ][ 5 ][ 6 ]]
|
||||
[[ unsigned char*->signed char ][ !!! *<1* !!! ][ 58 ][ 5 ][ 7 ]]
|
||||
[[ unsigned char*->unsigned char ][ !!! *<1* !!! ][ 59 ][ 5 ][ 7 ]]
|
||||
[[ unsigned char*->int ][ !!! *3* !!! ][ 58 ][ 12 ][ 11 ]]
|
||||
[[ unsigned char*->short ][ !!! *3* !!! ][ 67 ][ 12 ][ 11 ]]
|
||||
[[ unsigned char*->long int ][ !!! *3* !!! ][ 67 ][ 12 ][ 11 ]]
|
||||
[[ unsigned char*->long long ][ !!! *3* !!! ][ 70 ][ 11 ][ 11 ]]
|
||||
[[ unsigned char*->unsigned int ][ !!! *3* !!! ][ 60 ][ 10 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned short ][ !!! *3* !!! ][ 65 ][ 10 ][ 11 ]]
|
||||
[[ unsigned char*->unsigned long int ][ !!! *3* !!! ][ 61 ][ 11 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned long long ][ !!! *3* !!! ][ 58 ][ 11 ][ 10 ]]
|
||||
[[ unsigned char*->float ][ 51 ][ 88 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ unsigned char*->double ][ 54 ][ 88 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ unsigned char*->long double ][ 51 ][ 88 ][ 35 ][ !!! *24* !!! ]]
|
||||
[[ unsigned char*->array<char, 50> ][ !!! *<1* !!! ][ 127 ][ 26 ][ 21 ]]
|
||||
[[ unsigned char*->string ][ !!! *2* !!! ][ 90 ][ 11 ][ --- ]]
|
||||
[[ unsigned char*->container::string ][ !!! *1* !!! ][ 62 ][ 15 ][ --- ]]
|
||||
[[ signed char*->char ][ !!! *<1* !!! ][ 52 ][ 5 ][ 5 ]]
|
||||
[[ signed char*->signed char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 7 ]]
|
||||
[[ signed char*->unsigned char ][ !!! *<1* !!! ][ 52 ][ 5 ][ 7 ]]
|
||||
[[ signed char*->int ][ !!! *3* !!! ][ 60 ][ 12 ][ 11 ]]
|
||||
[[ signed char*->short ][ !!! *3* !!! ][ 63 ][ 12 ][ 11 ]]
|
||||
[[ signed char*->long int ][ !!! *3* !!! ][ 63 ][ 11 ][ 11 ]]
|
||||
[[ signed char*->long long ][ !!! *3* !!! ][ 64 ][ 11 ][ 11 ]]
|
||||
[[ signed char*->unsigned int ][ !!! *3* !!! ][ 60 ][ 10 ][ 10 ]]
|
||||
[[ signed char*->unsigned short ][ !!! *3* !!! ][ 59 ][ 10 ][ 10 ]]
|
||||
[[ signed char*->unsigned long int ][ !!! *2* !!! ][ 62 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned long long ][ !!! *3* !!! ][ 66 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->float ][ 51 ][ 86 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ signed char*->double ][ 55 ][ 87 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ signed char*->long double ][ 55 ][ 86 ][ 32 ][ !!! *24* !!! ]]
|
||||
[[ signed char*->array<char, 50> ][ !!! *<1* !!! ][ 64 ][ 10 ][ 8 ]]
|
||||
[[ signed char*->string ][ !!! *1* !!! ][ 62 ][ 12 ][ --- ]]
|
||||
[[ signed char*->container::string ][ !!! *1* !!! ][ 66 ][ 15 ][ --- ]]
|
||||
[[ iterator_range<char*>->char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 5 ]]
|
||||
[[ iterator_range<char*>->signed char ][ !!! *<1* !!! ][ 55 ][ 5 ][ 7 ]]
|
||||
[[ iterator_range<char*>->unsigned char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 7 ]]
|
||||
[[ iterator_range<char*>->int ][ !!! *3* !!! ][ 67 ][ 15 ][ 11 ]]
|
||||
[[ iterator_range<char*>->short ][ !!! *3* !!! ][ 96 ][ 37 ][ 27 ]]
|
||||
[[ iterator_range<char*>->long int ][ !!! *7* !!! ][ 166 ][ 37 ][ 27 ]]
|
||||
[[ iterator_range<char*>->long long ][ !!! *7* !!! ][ 150 ][ 37 ][ 26 ]]
|
||||
[[ iterator_range<char*>->unsigned int ][ !!! *7* !!! ][ 158 ][ 34 ][ 26 ]]
|
||||
[[ iterator_range<char*>->unsigned short ][ !!! *7* !!! ][ 170 ][ 36 ][ 26 ]]
|
||||
[[ iterator_range<char*>->unsigned long int ][ !!! *7* !!! ][ 154 ][ 35 ][ 26 ]]
|
||||
[[ iterator_range<char*>->unsigned long long ][ !!! *7* !!! ][ 158 ][ 36 ][ 26 ]]
|
||||
[[ iterator_range<char*>->float ][ 122 ][ 233 ][ 100 ][ !!! *54* !!! ]]
|
||||
[[ iterator_range<char*>->double ][ 134 ][ 245 ][ 97 ][ !!! *54* !!! ]]
|
||||
[[ iterator_range<char*>->long double ][ 127 ][ 238 ][ 98 ][ !!! *59* !!! ]]
|
||||
[[ iterator_range<char*>->array<char, 50> ][ !!! *<1* !!! ][ 159 ][ 42 ][ 21 ]]
|
||||
[[ iterator_range<char*>->string ][ !!! *2* !!! ][ 165 ][ 50 ][ --- ]]
|
||||
[[ iterator_range<char*>->container::string ][ !!! *1* !!! ][ 186 ][ 58 ][ --- ]]
|
||||
[[ std::string_view->char ][ !!! *<1* !!! ][ 130 ][ 12 ][ 14 ]]
|
||||
[[ std::string_view->signed char ][ !!! *<1* !!! ][ 128 ][ 12 ][ 18 ]]
|
||||
[[ std::string_view->unsigned char ][ !!! *<1* !!! ][ 134 ][ 12 ][ 17 ]]
|
||||
[[ std::string_view->int ][ !!! *7* !!! ][ 153 ][ 31 ][ 27 ]]
|
||||
[[ std::string_view->short ][ !!! *7* !!! ][ 148 ][ 29 ][ 26 ]]
|
||||
[[ std::string_view->long int ][ !!! *7* !!! ][ 150 ][ 28 ][ 26 ]]
|
||||
[[ std::string_view->long long ][ !!! *7* !!! ][ 116 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->unsigned int ][ !!! *2* !!! ][ 57 ][ 10 ][ 10 ]]
|
||||
[[ std::string_view->unsigned short ][ !!! *3* !!! ][ 57 ][ 10 ][ 10 ]]
|
||||
[[ std::string_view->unsigned long int ][ !!! *2* !!! ][ 66 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->unsigned long long ][ !!! *2* !!! ][ 61 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->float ][ 52 ][ 90 ][ 31 ][ !!! *22* !!! ]]
|
||||
[[ std::string_view->double ][ 56 ][ 92 ][ 31 ][ !!! *22* !!! ]]
|
||||
[[ std::string_view->long double ][ 56 ][ 95 ][ 32 ][ !!! *24* !!! ]]
|
||||
[[ std::string_view->array<char, 50> ][ !!! *<1* !!! ][ 65 ][ 10 ][ 8 ]]
|
||||
[[ std::string_view->string ][ !!! *1* !!! ][ 60 ][ 12 ][ --- ]]
|
||||
[[ std::string_view->container::string ][ !!! *2* !!! ][ 67 ][ 14 ][ --- ]]
|
||||
[[ array<char, 50>->char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 6 ]]
|
||||
[[ array<char, 50>->signed char ][ !!! *<1* !!! ][ 54 ][ 5 ][ 7 ]]
|
||||
[[ array<char, 50>->unsigned char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 7 ]]
|
||||
[[ array<char, 50>->int ][ !!! *3* !!! ][ 63 ][ 12 ][ 11 ]]
|
||||
[[ array<char, 50>->short ][ !!! *3* !!! ][ 62 ][ 12 ][ 11 ]]
|
||||
[[ array<char, 50>->long int ][ !!! *3* !!! ][ 63 ][ 11 ][ 11 ]]
|
||||
[[ array<char, 50>->long long ][ !!! *3* !!! ][ 60 ][ 11 ][ 11 ]]
|
||||
[[ array<char, 50>->unsigned int ][ !!! *3* !!! ][ 57 ][ 10 ][ 11 ]]
|
||||
[[ array<char, 50>->unsigned short ][ !!! *3* !!! ][ 65 ][ 11 ][ 11 ]]
|
||||
[[ array<char, 50>->unsigned long int ][ !!! *3* !!! ][ 69 ][ 11 ][ 11 ]]
|
||||
[[ array<char, 50>->unsigned long long ][ !!! *3* !!! ][ 68 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->float ][ 54 ][ 82 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ array<char, 50>->double ][ 57 ][ 93 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ array<char, 50>->long double ][ 53 ][ 85 ][ 32 ][ !!! *23* !!! ]]
|
||||
[[ array<char, 50>->array<char, 50> ][ !!! *<1* !!! ][ 60 ][ 10 ][ 8 ]]
|
||||
[[ array<char, 50>->string ][ !!! *1* !!! ][ 61 ][ 11 ][ --- ]]
|
||||
[[ array<char, 50>->container::string ][ !!! *1* !!! ][ 62 ][ 15 ][ --- ]]
|
||||
[[ int->int ][ !!! *<1* !!! ][ 65 ][ 15 ][ --- ]]
|
||||
[[ float->double ][ !!! *<1* !!! ][ 138 ][ 68 ][ --- ]]
|
||||
[[ char->signed char ][ !!! *<1* !!! ][ 53 ][ 5 ][ --- ]]
|
||||
]
|
||||
[endsect]
|
||||
|
||||
[section GNU C++ version 10.5.0]
|
||||
[table:id Performance Table ( GNU C++ version 10.5.0)
|
||||
[[From->To] [lexical_cast] [std::stringstream with construction] [std::stringstream without construction][scanf/printf]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 68 ][ 6 ][ 7 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 54 ][ 5 ][ 7 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 57 ][ 5 ][ 6 ]]
|
||||
[[ string->int ][ !!! *3* !!! ][ 60 ][ 12 ][ 10 ]]
|
||||
[[ string->short ][ !!! *4* !!! ][ 54 ][ 12 ][ 10 ]]
|
||||
[[ string->long int ][ !!! *3* !!! ][ 58 ][ 13 ][ 11 ]]
|
||||
[[ string->long long ][ !!! *4* !!! ][ 53 ][ 12 ][ 10 ]]
|
||||
[[ string->unsigned int ][ !!! *3* !!! ][ 52 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned short ][ !!! *3* !!! ][ 53 ][ 12 ][ 10 ]]
|
||||
[[ string->unsigned long int ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ string->unsigned long long ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ string->float ][ 47 ][ 83 ][ 36 ][ !!! *21* !!! ]]
|
||||
[[ string->double ][ 47 ][ 76 ][ 29 ][ !!! *21* !!! ]]
|
||||
[[ string->long double ][ 45 ][ 79 ][ 29 ][ !!! *24* !!! ]]
|
||||
[[ string->array<char, 50> ][ !!! *<1* !!! ][ 55 ][ 10 ][ 8 ]]
|
||||
[[ string->string ][ !!! *1* !!! ][ 55 ][ 11 ][ --- ]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 64 ][ 5 ][ 5 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 51 ][ 5 ][ 7 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 6 ]]
|
||||
[[ string->int ][ !!! *3* !!! ][ 56 ][ 11 ][ 10 ]]
|
||||
[[ string->short ][ !!! *3* !!! ][ 56 ][ 12 ][ 10 ]]
|
||||
[[ string->long int ][ !!! *3* !!! ][ 58 ][ 13 ][ 10 ]]
|
||||
[[ string->long long ][ !!! *3* !!! ][ 56 ][ 13 ][ 10 ]]
|
||||
[[ string->unsigned int ][ !!! *3* !!! ][ 60 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned short ][ !!! *3* !!! ][ 58 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned long int ][ !!! *3* !!! ][ 59 ][ 12 ][ 10 ]]
|
||||
[[ string->unsigned long long ][ !!! *3* !!! ][ 53 ][ 11 ][ 10 ]]
|
||||
[[ string->float ][ 49 ][ 81 ][ 34 ][ !!! *21* !!! ]]
|
||||
[[ string->double ][ 45 ][ 75 ][ 28 ][ !!! *21* !!! ]]
|
||||
[[ string->long double ][ 46 ][ 76 ][ 30 ][ !!! *25* !!! ]]
|
||||
[[ string->array<char, 50> ][ !!! *<1* !!! ][ 55 ][ 10 ][ 10 ]]
|
||||
[[ string->string ][ !!! *1* !!! ][ 54 ][ 11 ][ --- ]]
|
||||
[[ string->container::string ][ !!! *<1* !!! ][ 57 ][ 11 ][ --- ]]
|
||||
[[ string->char ][ !!! *<1* !!! ][ 51 ][ 9 ][ 7 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 54 ][ 9 ][ 9 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 51 ][ 9 ][ 9 ]]
|
||||
[[ int->string ][ !!! *3* !!! ][ 56 ][ 18 ][ 9 ]]
|
||||
[[ short->string ][ !!! *3* !!! ][ 58 ][ 13 ][ 10 ]]
|
||||
[[ long int->string ][ !!! *3* !!! ][ 57 ][ 12 ][ 11 ]]
|
||||
[[ long long->string ][ !!! *3* !!! ][ 57 ][ 12 ][ 12 ]]
|
||||
[[ unsigned int->string ][ !!! *3* !!! ][ 57 ][ 12 ][ 11 ]]
|
||||
[[ unsigned short->string ][ !!! *3* !!! ][ 57 ][ 12 ][ 10 ]]
|
||||
[[ string->signed char ][ !!! *<1* !!! ][ 51 ][ 10 ][ 10 ]]
|
||||
[[ string->unsigned char ][ !!! *<1* !!! ][ 53 ][ 10 ][ 10 ]]
|
||||
[[ int->string ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ short->string ][ !!! *3* !!! ][ 55 ][ 13 ][ 10 ]]
|
||||
[[ long int->string ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ long long->string ][ !!! *3* !!! ][ 56 ][ 12 ][ 10 ]]
|
||||
[[ unsigned int->string ][ !!! *3* !!! ][ 54 ][ 12 ][ 10 ]]
|
||||
[[ unsigned short->string ][ !!! *3* !!! ][ 54 ][ 12 ][ 10 ]]
|
||||
[[ unsigned long int->string ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ unsigned long long->string ][ !!! *3* !!! ][ 57 ][ 12 ][ 10 ]]
|
||||
[[ float->string ][ 26 ][ 93 ][ 45 ][ !!! *24* !!! ]]
|
||||
[[ double->string ][ 33 ][ 96 ][ 49 ][ !!! *27* !!! ]]
|
||||
[[ long double->string ][ 42 ][ 97 ][ 47 ][ !!! *25* !!! ]]
|
||||
[[ unsigned long long->string ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ float->string ][ 26 ][ 96 ][ 46 ][ !!! *25* !!! ]]
|
||||
[[ double->string ][ 33 ][ 94 ][ 46 ][ !!! *23* !!! ]]
|
||||
[[ long double->string ][ 44 ][ 96 ][ 52 ][ !!! *26* !!! ]]
|
||||
[[ char*->char ][ !!! *<1* !!! ][ 48 ][ 5 ][ 5 ]]
|
||||
[[ char*->signed char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 7 ]]
|
||||
[[ char*->unsigned char ][ !!! *<1* !!! ][ 48 ][ 5 ][ 7 ]]
|
||||
[[ char*->int ][ !!! *4* !!! ][ 58 ][ 11 ][ 10 ]]
|
||||
[[ char*->short ][ !!! *3* !!! ][ 56 ][ 12 ][ 10 ]]
|
||||
[[ char*->long int ][ !!! *3* !!! ][ 56 ][ 11 ][ 10 ]]
|
||||
[[ char*->long long ][ !!! *3* !!! ][ 56 ][ 11 ][ 10 ]]
|
||||
[[ char*->unsigned int ][ !!! *3* !!! ][ 120 ][ 25 ][ 25 ]]
|
||||
[[ char*->unsigned short ][ !!! *8* !!! ][ 135 ][ 26 ][ 25 ]]
|
||||
[[ char*->unsigned long int ][ !!! *8* !!! ][ 141 ][ 28 ][ 26 ]]
|
||||
[[ char*->unsigned long long ][ !!! *8* !!! ][ 138 ][ 27 ][ 25 ]]
|
||||
[[ char*->float ][ 117 ][ 196 ][ 78 ][ !!! *54* !!! ]]
|
||||
[[ char*->double ][ 106 ][ 187 ][ 70 ][ !!! *55* !!! ]]
|
||||
[[ char*->long double ][ 118 ][ 200 ][ 81 ][ !!! *57* !!! ]]
|
||||
[[ char*->array<char, 50> ][ !!! *2* !!! ][ 131 ][ 25 ][ 24 ]]
|
||||
[[ char*->string ][ !!! *3* !!! ][ 137 ][ 31 ][ --- ]]
|
||||
[[ char*->container::string ][ !!! *2* !!! ][ 146 ][ 30 ][ --- ]]
|
||||
[[ unsigned char*->char ][ !!! *<1* !!! ][ 116 ][ 13 ][ 14 ]]
|
||||
[[ unsigned char*->signed char ][ !!! *1* !!! ][ 118 ][ 12 ][ 17 ]]
|
||||
[[ unsigned char*->unsigned char ][ !!! *<1* !!! ][ 116 ][ 14 ][ 18 ]]
|
||||
[[ unsigned char*->int ][ !!! *9* !!! ][ 133 ][ 30 ][ 29 ]]
|
||||
[[ unsigned char*->short ][ !!! *10* !!! ][ 133 ][ 28 ][ 26 ]]
|
||||
[[ unsigned char*->long int ][ !!! *10* !!! ][ 139 ][ 28 ][ 26 ]]
|
||||
[[ unsigned char*->long long ][ !!! *9* !!! ][ 131 ][ 29 ][ 27 ]]
|
||||
[[ unsigned char*->unsigned int ][ !!! *8* !!! ][ 131 ][ 28 ][ 28 ]]
|
||||
[[ unsigned char*->unsigned short ][ !!! *8* !!! ][ 130 ][ 28 ][ 27 ]]
|
||||
[[ unsigned char*->unsigned long int ][ !!! *8* !!! ][ 131 ][ 29 ][ 26 ]]
|
||||
[[ unsigned char*->unsigned long long ][ !!! *8* !!! ][ 132 ][ 28 ][ 25 ]]
|
||||
[[ unsigned char*->float ][ 115 ][ 187 ][ 47 ][ !!! *22* !!! ]]
|
||||
[[ unsigned char*->double ][ !!! *47* !!! ][ 75 ][ 60 ][ 53 ]]
|
||||
[[ unsigned char*->long double ][ 110 ][ 74 ][ 29 ][ !!! *23* !!! ]]
|
||||
[[ unsigned char*->array<char, 50> ][ !!! *<1* !!! ][ 56 ][ 10 ][ 8 ]]
|
||||
[[ unsigned char*->string ][ !!! *1* !!! ][ 54 ][ 11 ][ --- ]]
|
||||
[[ unsigned char*->container::string ][ !!! *<1* !!! ][ 60 ][ 13 ][ --- ]]
|
||||
[[ char*->signed char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 7 ]]
|
||||
[[ char*->unsigned char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 6 ]]
|
||||
[[ char*->int ][ !!! *3* !!! ][ 57 ][ 12 ][ 10 ]]
|
||||
[[ char*->short ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ char*->long int ][ !!! *3* !!! ][ 59 ][ 11 ][ 10 ]]
|
||||
[[ char*->long long ][ !!! *4* !!! ][ 61 ][ 11 ][ 10 ]]
|
||||
[[ char*->unsigned int ][ !!! *3* !!! ][ 53 ][ 10 ][ 10 ]]
|
||||
[[ char*->unsigned short ][ !!! *3* !!! ][ 53 ][ 10 ][ 10 ]]
|
||||
[[ char*->unsigned long int ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ char*->unsigned long long ][ !!! *3* !!! ][ 55 ][ 11 ][ 10 ]]
|
||||
[[ char*->float ][ 46 ][ 78 ][ 39 ][ !!! *21* !!! ]]
|
||||
[[ char*->double ][ 43 ][ 73 ][ 28 ][ !!! *21* !!! ]]
|
||||
[[ char*->long double ][ 46 ][ 74 ][ 30 ][ !!! *23* !!! ]]
|
||||
[[ char*->array<char, 50> ][ !!! *<1* !!! ][ 52 ][ 10 ][ 8 ]]
|
||||
[[ char*->string ][ !!! *1* !!! ][ 58 ][ 11 ][ --- ]]
|
||||
[[ char*->container::string ][ !!! *<1* !!! ][ 64 ][ 11 ][ --- ]]
|
||||
[[ unsigned char*->char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 5 ]]
|
||||
[[ unsigned char*->signed char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 7 ]]
|
||||
[[ unsigned char*->unsigned char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 7 ]]
|
||||
[[ unsigned char*->int ][ !!! *3* !!! ][ 55 ][ 12 ][ 12 ]]
|
||||
[[ unsigned char*->short ][ !!! *4* !!! ][ 59 ][ 11 ][ 10 ]]
|
||||
[[ unsigned char*->long int ][ !!! *3* !!! ][ 56 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->long long ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned int ][ !!! *3* !!! ][ 53 ][ 10 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned short ][ !!! *3* !!! ][ 54 ][ 10 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned long int ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ unsigned char*->unsigned long long ][ !!! *3* !!! ][ 55 ][ 11 ][ 10 ]]
|
||||
[[ unsigned char*->float ][ 100 ][ 143 ][ 33 ][ !!! *21* !!! ]]
|
||||
[[ unsigned char*->double ][ 44 ][ 73 ][ 28 ][ !!! *22* !!! ]]
|
||||
[[ unsigned char*->long double ][ 46 ][ 75 ][ 30 ][ !!! *23* !!! ]]
|
||||
[[ unsigned char*->array<char, 50> ][ !!! *<1* !!! ][ 53 ][ 11 ][ 8 ]]
|
||||
[[ unsigned char*->string ][ !!! *1* !!! ][ 58 ][ 11 ][ --- ]]
|
||||
[[ unsigned char*->container::string ][ !!! *<1* !!! ][ 59 ][ 11 ][ --- ]]
|
||||
[[ signed char*->char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 5 ]]
|
||||
[[ signed char*->signed char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 7 ]]
|
||||
[[ signed char*->unsigned char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 7 ]]
|
||||
[[ signed char*->int ][ !!! *3* !!! ][ 57 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->short ][ !!! *3* !!! ][ 55 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->long int ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->long long ][ !!! *3* !!! ][ 54 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->unsigned int ][ !!! *3* !!! ][ 55 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned short ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned long int ][ !!! *4* !!! ][ 54 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->unsigned long long ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->float ][ 53 ][ 78 ][ 32 ][ !!! *21* !!! ]]
|
||||
[[ signed char*->double ][ 44 ][ 76 ][ 28 ][ !!! *21* !!! ]]
|
||||
[[ signed char*->long double ][ !!! *45* !!! ][ 155 ][ 80 ][ 56 ]]
|
||||
[[ signed char*->array<char, 50> ][ !!! *1* !!! ][ 125 ][ 26 ][ 20 ]]
|
||||
[[ signed char*->string ][ !!! *3* !!! ][ 137 ][ 28 ][ --- ]]
|
||||
[[ signed char*->container::string ][ !!! *2* !!! ][ 135 ][ 29 ][ --- ]]
|
||||
[[ iterator_range<char*>->char ][ !!! *<1* !!! ][ 114 ][ 13 ][ 13 ]]
|
||||
[[ iterator_range<char*>->signed char ][ !!! *<1* !!! ][ 114 ][ 13 ][ 18 ]]
|
||||
[[ iterator_range<char*>->unsigned char ][ !!! *<1* !!! ][ 114 ][ 13 ][ 17 ]]
|
||||
[[ iterator_range<char*>->int ][ !!! *9* !!! ][ 143 ][ 37 ][ 25 ]]
|
||||
[[ iterator_range<char*>->short ][ !!! *8* !!! ][ 146 ][ 37 ][ 25 ]]
|
||||
[[ iterator_range<char*>->long int ][ !!! *8* !!! ][ 144 ][ 37 ][ 25 ]]
|
||||
[[ iterator_range<char*>->long long ][ !!! *8* !!! ][ 142 ][ 36 ][ 27 ]]
|
||||
[[ iterator_range<char*>->unsigned int ][ !!! *8* !!! ][ 138 ][ 33 ][ 25 ]]
|
||||
[[ iterator_range<char*>->unsigned short ][ !!! *8* !!! ][ 137 ][ 33 ][ 25 ]]
|
||||
[[ iterator_range<char*>->unsigned long int ][ !!! *8* !!! ][ 145 ][ 36 ][ 26 ]]
|
||||
[[ iterator_range<char*>->unsigned long long ][ !!! *8* !!! ][ 141 ][ 36 ][ 27 ]]
|
||||
[[ iterator_range<char*>->float ][ 118 ][ 209 ][ 108 ][ !!! *57* !!! ]]
|
||||
[[ iterator_range<char*>->double ][ 116 ][ 202 ][ 87 ][ !!! *52* !!! ]]
|
||||
[[ iterator_range<char*>->long double ][ 106 ][ 199 ][ 90 ][ !!! *56* !!! ]]
|
||||
[[ iterator_range<char*>->array<char, 50> ][ !!! *1* !!! ][ 146 ][ 43 ][ 20 ]]
|
||||
[[ iterator_range<char*>->string ][ !!! *2* !!! ][ 161 ][ 52 ][ --- ]]
|
||||
[[ iterator_range<char*>->container::string ][ !!! *1* !!! ][ 158 ][ 51 ][ --- ]]
|
||||
[[ std::string_view->char ][ !!! *<1* !!! ][ 112 ][ 12 ][ 13 ]]
|
||||
[[ std::string_view->signed char ][ !!! *<1* !!! ][ 112 ][ 12 ][ 17 ]]
|
||||
[[ std::string_view->unsigned char ][ !!! *<1* !!! ][ 113 ][ 12 ][ 16 ]]
|
||||
[[ std::string_view->int ][ !!! *9* !!! ][ 131 ][ 28 ][ 25 ]]
|
||||
[[ std::string_view->short ][ !!! *9* !!! ][ 133 ][ 27 ][ 25 ]]
|
||||
[[ std::string_view->long int ][ !!! *10* !!! ][ 132 ][ 27 ][ 25 ]]
|
||||
[[ std::string_view->long long ][ !!! *9* !!! ][ 132 ][ 27 ][ 25 ]]
|
||||
[[ std::string_view->unsigned int ][ !!! *8* !!! ][ 125 ][ 24 ][ 25 ]]
|
||||
[[ std::string_view->unsigned short ][ !!! *8* !!! ][ 125 ][ 24 ][ 26 ]]
|
||||
[[ std::string_view->unsigned long int ][ !!! *9* !!! ][ 130 ][ 28 ][ 25 ]]
|
||||
[[ std::string_view->unsigned long long ][ !!! *8* !!! ][ 135 ][ 29 ][ 29 ]]
|
||||
[[ std::string_view->float ][ 134 ][ 212 ][ 79 ][ !!! *58* !!! ]]
|
||||
[[ std::string_view->double ][ 126 ][ 197 ][ 72 ][ !!! *53* !!! ]]
|
||||
[[ std::string_view->long double ][ 109 ][ 178 ][ 71 ][ !!! *56* !!! ]]
|
||||
[[ std::string_view->array<char, 50> ][ !!! *3* !!! ][ 124 ][ 25 ][ 20 ]]
|
||||
[[ std::string_view->string ][ !!! *4* !!! ][ 139 ][ 27 ][ --- ]]
|
||||
[[ std::string_view->container::string ][ !!! *3* !!! ][ 144 ][ 29 ][ --- ]]
|
||||
[[ array<char, 50>->char ][ !!! *<1* !!! ][ 114 ][ 13 ][ 13 ]]
|
||||
[[ array<char, 50>->signed char ][ !!! *<1* !!! ][ 114 ][ 14 ][ 17 ]]
|
||||
[[ array<char, 50>->unsigned char ][ !!! *<1* !!! ][ 114 ][ 13 ][ 16 ]]
|
||||
[[ array<char, 50>->int ][ !!! *7* !!! ][ 143 ][ 28 ][ 25 ]]
|
||||
[[ array<char, 50>->short ][ !!! *8* !!! ][ 144 ][ 28 ][ 25 ]]
|
||||
[[ array<char, 50>->long int ][ !!! *8* !!! ][ 138 ][ 28 ][ 25 ]]
|
||||
[[ array<char, 50>->long long ][ !!! *8* !!! ][ 135 ][ 28 ][ 25 ]]
|
||||
[[ array<char, 50>->unsigned int ][ !!! *7* !!! ][ 130 ][ 25 ][ 25 ]]
|
||||
[[ array<char, 50>->unsigned short ][ !!! *7* !!! ][ 129 ][ 25 ][ 25 ]]
|
||||
[[ array<char, 50>->unsigned long int ][ !!! *7* !!! ][ 130 ][ 28 ][ 25 ]]
|
||||
[[ array<char, 50>->unsigned long long ][ !!! *8* !!! ][ 132 ][ 27 ][ 25 ]]
|
||||
[[ array<char, 50>->float ][ 114 ][ 102 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ array<char, 50>->double ][ 42 ][ 78 ][ 27 ][ !!! *21* !!! ]]
|
||||
[[ array<char, 50>->long double ][ 44 ][ 79 ][ 29 ][ !!! *23* !!! ]]
|
||||
[[ array<char, 50>->array<char, 50> ][ !!! *<1* !!! ][ 54 ][ 10 ][ 8 ]]
|
||||
[[ array<char, 50>->string ][ !!! *1* !!! ][ 55 ][ 11 ][ --- ]]
|
||||
[[ signed char*->unsigned char ][ !!! *<1* !!! ][ 51 ][ 5 ][ 6 ]]
|
||||
[[ signed char*->int ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->short ][ !!! *4* !!! ][ 56 ][ 12 ][ 10 ]]
|
||||
[[ signed char*->long int ][ !!! *4* !!! ][ 56 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->long long ][ !!! *3* !!! ][ 55 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned int ][ !!! *3* !!! ][ 60 ][ 10 ][ 10 ]]
|
||||
[[ signed char*->unsigned short ][ !!! *3* !!! ][ 53 ][ 10 ][ 10 ]]
|
||||
[[ signed char*->unsigned long int ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->unsigned long long ][ !!! *6* !!! ][ 58 ][ 11 ][ 10 ]]
|
||||
[[ signed char*->float ][ 47 ][ 76 ][ 32 ][ !!! *21* !!! ]]
|
||||
[[ signed char*->double ][ 44 ][ 73 ][ 29 ][ !!! *21* !!! ]]
|
||||
[[ signed char*->long double ][ 45 ][ 74 ][ 31 ][ !!! *24* !!! ]]
|
||||
[[ signed char*->array<char, 50> ][ !!! *<1* !!! ][ 52 ][ 11 ][ 8 ]]
|
||||
[[ signed char*->string ][ !!! *1* !!! ][ 58 ][ 11 ][ --- ]]
|
||||
[[ signed char*->container::string ][ !!! *<1* !!! ][ 59 ][ 11 ][ --- ]]
|
||||
[[ iterator_range<char*>->char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 5 ]]
|
||||
[[ iterator_range<char*>->signed char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 7 ]]
|
||||
[[ iterator_range<char*>->unsigned char ][ !!! *<1* !!! ][ 53 ][ 5 ][ 6 ]]
|
||||
[[ iterator_range<char*>->int ][ !!! *3* !!! ][ 58 ][ 15 ][ 10 ]]
|
||||
[[ iterator_range<char*>->short ][ !!! *3* !!! ][ 59 ][ 16 ][ 10 ]]
|
||||
[[ iterator_range<char*>->long int ][ !!! *3* !!! ][ 58 ][ 15 ][ 10 ]]
|
||||
[[ iterator_range<char*>->long long ][ !!! *3* !!! ][ 59 ][ 15 ][ 10 ]]
|
||||
[[ iterator_range<char*>->unsigned int ][ !!! *3* !!! ][ 56 ][ 14 ][ 10 ]]
|
||||
[[ iterator_range<char*>->unsigned short ][ !!! *3* !!! ][ 61 ][ 14 ][ 10 ]]
|
||||
[[ iterator_range<char*>->unsigned long int ][ !!! *3* !!! ][ 58 ][ 14 ][ 10 ]]
|
||||
[[ iterator_range<char*>->unsigned long long ][ !!! *3* !!! ][ 71 ][ 36 ][ 25 ]]
|
||||
[[ iterator_range<char*>->float ][ 116 ][ 93 ][ 39 ][ !!! *21* !!! ]]
|
||||
[[ iterator_range<char*>->double ][ 43 ][ 81 ][ 34 ][ !!! *21* !!! ]]
|
||||
[[ iterator_range<char*>->long double ][ 44 ][ 87 ][ 37 ][ !!! *24* !!! ]]
|
||||
[[ iterator_range<char*>->array<char, 50> ][ !!! *<1* !!! ][ 58 ][ 17 ][ 8 ]]
|
||||
[[ iterator_range<char*>->string ][ !!! *1* !!! ][ 63 ][ 20 ][ --- ]]
|
||||
[[ iterator_range<char*>->container::string ][ !!! *<1* !!! ][ 65 ][ 20 ][ --- ]]
|
||||
[[ std::string_view->char ][ !!! *<1* !!! ][ 46 ][ 5 ][ 5 ]]
|
||||
[[ std::string_view->signed char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 7 ]]
|
||||
[[ std::string_view->unsigned char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 7 ]]
|
||||
[[ std::string_view->int ][ !!! *4* !!! ][ 56 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->short ][ !!! *3* !!! ][ 55 ][ 12 ][ 10 ]]
|
||||
[[ std::string_view->long int ][ !!! *4* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->long long ][ !!! *4* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->unsigned int ][ !!! *3* !!! ][ 53 ][ 10 ][ 10 ]]
|
||||
[[ std::string_view->unsigned short ][ !!! *3* !!! ][ 54 ][ 10 ][ 10 ]]
|
||||
[[ std::string_view->unsigned long int ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->unsigned long long ][ !!! *3* !!! ][ 55 ][ 11 ][ 10 ]]
|
||||
[[ std::string_view->float ][ 47 ][ 76 ][ 32 ][ !!! *22* !!! ]]
|
||||
[[ std::string_view->double ][ 43 ][ 74 ][ 28 ][ !!! *21* !!! ]]
|
||||
[[ std::string_view->long double ][ 46 ][ 75 ][ 31 ][ !!! *24* !!! ]]
|
||||
[[ std::string_view->array<char, 50> ][ !!! *1* !!! ][ 51 ][ 10 ][ 8 ]]
|
||||
[[ std::string_view->string ][ !!! *2* !!! ][ 53 ][ 10 ][ --- ]]
|
||||
[[ std::string_view->container::string ][ !!! *1* !!! ][ 56 ][ 11 ][ --- ]]
|
||||
[[ array<char, 50>->char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 5 ]]
|
||||
[[ array<char, 50>->signed char ][ !!! *<1* !!! ][ 47 ][ 5 ][ 6 ]]
|
||||
[[ array<char, 50>->unsigned char ][ !!! *<1* !!! ][ 49 ][ 5 ][ 6 ]]
|
||||
[[ array<char, 50>->int ][ !!! *3* !!! ][ 54 ][ 12 ][ 10 ]]
|
||||
[[ array<char, 50>->short ][ !!! *3* !!! ][ 61 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->long int ][ !!! *3* !!! ][ 55 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->long long ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned int ][ !!! *3* !!! ][ 53 ][ 10 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned short ][ !!! *3* !!! ][ 52 ][ 10 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned long int ][ !!! *3* !!! ][ 62 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->unsigned long long ][ !!! *3* !!! ][ 54 ][ 11 ][ 10 ]]
|
||||
[[ array<char, 50>->float ][ 45 ][ 75 ][ 35 ][ !!! *24* !!! ]]
|
||||
[[ array<char, 50>->double ][ 44 ][ 75 ][ 28 ][ !!! *21* !!! ]]
|
||||
[[ array<char, 50>->long double ][ 45 ][ 76 ][ 29 ][ !!! *24* !!! ]]
|
||||
[[ array<char, 50>->array<char, 50> ][ !!! *<1* !!! ][ 53 ][ 10 ][ 8 ]]
|
||||
[[ array<char, 50>->string ][ !!! *1* !!! ][ 54 ][ 11 ][ --- ]]
|
||||
[[ array<char, 50>->container::string ][ !!! *1* !!! ][ 56 ][ 12 ][ --- ]]
|
||||
[[ int->int ][ !!! *<1* !!! ][ 58 ][ 14 ][ --- ]]
|
||||
[[ float->double ][ !!! *<1* !!! ][ 124 ][ 75 ][ --- ]]
|
||||
[[ char->signed char ][ !!! *<1* !!! ][ 48 ][ 5 ][ --- ]]
|
||||
[[ int->int ][ !!! *<1* !!! ][ 58 ][ 13 ][ --- ]]
|
||||
[[ float->double ][ !!! *<1* !!! ][ 116 ][ 63 ][ --- ]]
|
||||
[[ char->signed char ][ !!! *<1* !!! ][ 47 ][ 5 ][ --- ]]
|
||||
]
|
||||
[endsect]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[/ END of section, generated by performance measuring program ]
|
||||
[endsect]
|
||||
|
||||
|
||||
@@ -509,7 +509,7 @@ namespace boost {
|
||||
return false;
|
||||
|
||||
to_target_stream out(src_stream.cbegin(), src_stream.cend());
|
||||
if(!(out.stream_out(result)))
|
||||
if (!out.stream_out(result))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
||||
@@ -77,7 +77,6 @@
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/is_reference.hpp>
|
||||
#include <boost/container/container_fwd.hpp>
|
||||
#include <boost/core/noncopyable.hpp>
|
||||
#include <boost/core/enable_if.hpp>
|
||||
#ifndef BOOST_NO_CWCHAR
|
||||
# include <cwchar>
|
||||
@@ -108,7 +107,7 @@ namespace boost { namespace detail { namespace lcast {
|
||||
, class Traits
|
||||
, std::size_t CharacterBufferSize
|
||||
>
|
||||
class optimized_src_stream: boost::noncopyable {
|
||||
class optimized_src_stream {
|
||||
CharT buffer[CharacterBufferSize];
|
||||
|
||||
// After the `stream_in(` finishes, `[start, finish)` is
|
||||
@@ -116,6 +115,11 @@ namespace boost { namespace detail { namespace lcast {
|
||||
const CharT* start;
|
||||
const CharT* finish;
|
||||
public:
|
||||
optimized_src_stream(optimized_src_stream&&) = delete;
|
||||
optimized_src_stream(const optimized_src_stream&) = delete;
|
||||
optimized_src_stream& operator=(optimized_src_stream&&) = delete;
|
||||
optimized_src_stream& operator=(const optimized_src_stream&) = delete;
|
||||
|
||||
optimized_src_stream() noexcept
|
||||
: start(buffer)
|
||||
, finish(buffer + CharacterBufferSize)
|
||||
@@ -363,6 +367,11 @@ namespace boost { namespace detail { namespace lcast {
|
||||
const CharT* start = nullptr;
|
||||
const CharT* finish = nullptr;
|
||||
public:
|
||||
ios_src_stream(ios_src_stream&&) = delete;
|
||||
ios_src_stream(const ios_src_stream&) = delete;
|
||||
ios_src_stream& operator=(ios_src_stream&&) = delete;
|
||||
ios_src_stream& operator=(const ios_src_stream&) = delete;
|
||||
|
||||
ios_src_stream(): out_buffer(), out_stream(&out_buffer) {}
|
||||
|
||||
const CharT* cbegin() const noexcept {
|
||||
@@ -463,12 +472,17 @@ namespace boost { namespace detail { namespace lcast {
|
||||
|
||||
|
||||
template <class CharT, class Traits>
|
||||
class to_target_stream: boost::noncopyable {
|
||||
class to_target_stream {
|
||||
//`[start, finish)` is the range to output by `operator >>`
|
||||
const CharT* start;
|
||||
const CharT* const finish;
|
||||
|
||||
public:
|
||||
to_target_stream(to_target_stream&&) = delete;
|
||||
to_target_stream(const to_target_stream&) = delete;
|
||||
to_target_stream& operator=(to_target_stream&&) = delete;
|
||||
to_target_stream& operator=(const to_target_stream&) = delete;
|
||||
|
||||
to_target_stream(const CharT* begin, const CharT* end) noexcept
|
||||
: start(begin)
|
||||
, finish(end)
|
||||
|
||||
@@ -23,20 +23,7 @@
|
||||
# pragma once
|
||||
#endif
|
||||
|
||||
#if defined(__clang__) || (defined(__GNUC__) && \
|
||||
!(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && \
|
||||
(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wuninitialized"
|
||||
#pragma GCC diagnostic ignored "-Wsign-conversion"
|
||||
#endif
|
||||
|
||||
|
||||
#include <string>
|
||||
#include <boost/type_traits/is_integral.hpp>
|
||||
#include <boost/type_traits/type_identity.hpp>
|
||||
#include <boost/type_traits/conditional.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/type_traits/is_arithmetic.hpp>
|
||||
|
||||
#include <boost/lexical_cast/detail/buffer_view.hpp>
|
||||
@@ -44,33 +31,9 @@
|
||||
#include <boost/lexical_cast/detail/converter_numeric.hpp>
|
||||
#include <boost/lexical_cast/detail/converter_lexical.hpp>
|
||||
|
||||
#include <boost/container/container_fwd.hpp>
|
||||
|
||||
namespace boost {
|
||||
namespace detail
|
||||
{
|
||||
template<typename T>
|
||||
struct is_stdstring
|
||||
: boost::false_type
|
||||
{};
|
||||
|
||||
template<typename CharT, typename Traits, typename Alloc>
|
||||
struct is_stdstring< std::basic_string<CharT, Traits, Alloc> >
|
||||
: boost::true_type
|
||||
{};
|
||||
|
||||
// Sun Studio has problem with partial specialization of templates differing only in namespace.
|
||||
// We workaround that by making `is_booststring` trait, instead of specializing `is_stdstring` for `boost::container::basic_string`.
|
||||
template<typename T>
|
||||
struct is_booststring
|
||||
: boost::false_type
|
||||
{};
|
||||
|
||||
template<typename CharT, typename Traits, typename Alloc>
|
||||
struct is_booststring< boost::container::basic_string<CharT, Traits, Alloc> >
|
||||
: boost::true_type
|
||||
{};
|
||||
|
||||
template<typename Target, typename Source>
|
||||
using is_arithmetic_and_not_xchars = boost::integral_constant<
|
||||
bool,
|
||||
@@ -79,70 +42,6 @@ namespace boost {
|
||||
boost::is_arithmetic<Source>::value &&
|
||||
boost::is_arithmetic<Target>::value
|
||||
>;
|
||||
|
||||
/*
|
||||
* is_xchar_to_xchar<Target, Source>::value is true,
|
||||
* Target and Souce are char types of the same size 1 (char, signed char, unsigned char).
|
||||
*/
|
||||
template<typename Target, typename Source>
|
||||
using is_xchar_to_xchar = boost::integral_constant<
|
||||
bool,
|
||||
sizeof(Source) == sizeof(Target) &&
|
||||
sizeof(Source) == sizeof(char) &&
|
||||
boost::detail::is_character<Target>::value &&
|
||||
boost::detail::is_character<Source>::value
|
||||
>;
|
||||
|
||||
template<typename Target, typename Source>
|
||||
struct is_char_array_to_stdstring
|
||||
: boost::false_type
|
||||
{};
|
||||
|
||||
template<typename CharT, typename Traits, typename Alloc>
|
||||
struct is_char_array_to_stdstring< std::basic_string<CharT, Traits, Alloc>, CharT* >
|
||||
: boost::true_type
|
||||
{};
|
||||
|
||||
template<typename CharT, typename Traits, typename Alloc>
|
||||
struct is_char_array_to_stdstring< std::basic_string<CharT, Traits, Alloc>, const CharT* >
|
||||
: boost::true_type
|
||||
{};
|
||||
|
||||
// Sun Studio has problem with partial specialization of templates differing only in namespace.
|
||||
// We workaround that by making `is_char_array_to_booststring` trait, instead of specializing `is_char_array_to_stdstring` for `boost::container::basic_string`.
|
||||
template<typename Target, typename Source>
|
||||
struct is_char_array_to_booststring
|
||||
: boost::false_type
|
||||
{};
|
||||
|
||||
template<typename CharT, typename Traits, typename Alloc>
|
||||
struct is_char_array_to_booststring< boost::container::basic_string<CharT, Traits, Alloc>, CharT* >
|
||||
: boost::true_type
|
||||
{};
|
||||
|
||||
template<typename CharT, typename Traits, typename Alloc>
|
||||
struct is_char_array_to_booststring< boost::container::basic_string<CharT, Traits, Alloc>, const CharT* >
|
||||
: boost::true_type
|
||||
{};
|
||||
|
||||
template <typename Target, typename Source>
|
||||
struct copy_converter_impl
|
||||
{
|
||||
// MSVC fail to forward an array (DevDiv#555157 "SILENT BAD CODEGEN triggered by perfect forwarding",
|
||||
// fixed in 2013 RTM).
|
||||
#if !defined(BOOST_MSVC) || BOOST_MSVC >= 1800
|
||||
template <class T>
|
||||
static inline bool try_convert(T&& arg, Target& result) {
|
||||
result = static_cast<T&&>(arg); // eqaul to `result = std::forward<T>(arg);`
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
static inline bool try_convert(const Source& arg, Target& result) {
|
||||
result = arg;
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
};
|
||||
}
|
||||
|
||||
namespace conversion { namespace detail {
|
||||
@@ -156,37 +55,14 @@ namespace boost {
|
||||
|
||||
typedef typename boost::detail::array_to_pointer_decay<Source>::type src;
|
||||
|
||||
typedef boost::integral_constant<
|
||||
bool,
|
||||
boost::detail::is_xchar_to_xchar<Target, src >::value ||
|
||||
boost::detail::is_char_array_to_stdstring<Target, src >::value ||
|
||||
boost::detail::is_char_array_to_booststring<Target, src >::value ||
|
||||
(
|
||||
boost::is_same<Target, src >::value &&
|
||||
(boost::detail::is_stdstring<Target >::value || boost::detail::is_booststring<Target >::value)
|
||||
) ||
|
||||
(
|
||||
boost::is_same<Target, src >::value &&
|
||||
boost::detail::is_character<Target >::value
|
||||
)
|
||||
> shall_we_copy_t;
|
||||
|
||||
typedef boost::detail::is_arithmetic_and_not_xchars<Target, src >
|
||||
shall_we_copy_with_dynamic_check_t;
|
||||
|
||||
// We do evaluate second `if_` lazily to avoid unnecessary instantiations
|
||||
// of `shall_we_copy_with_dynamic_check_t` and improve compilation times.
|
||||
typedef typename boost::conditional<
|
||||
shall_we_copy_t::value,
|
||||
boost::type_identity<boost::detail::copy_converter_impl<Target, src > >,
|
||||
boost::conditional<
|
||||
shall_we_copy_with_dynamic_check_t::value,
|
||||
boost::detail::dynamic_num_converter_impl<Target, src >,
|
||||
boost::detail::lexical_converter_impl<Target, src >
|
||||
>
|
||||
>::type caster_type_lazy;
|
||||
|
||||
typedef typename caster_type_lazy::type caster_type;
|
||||
shall_we_copy_with_dynamic_check_t::value,
|
||||
boost::detail::dynamic_num_converter_impl<Target, src >,
|
||||
boost::detail::lexical_converter_impl<Target, src >
|
||||
>::type caster_type;
|
||||
|
||||
return caster_type::try_convert(arg, result);
|
||||
}
|
||||
@@ -213,11 +89,5 @@ namespace boost {
|
||||
|
||||
} // namespace boost
|
||||
|
||||
#if defined(__clang__) || (defined(__GNUC__) && \
|
||||
!(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && \
|
||||
(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
#endif // BOOST_LEXICAL_CAST_TRY_LEXICAL_CONVERT_HPP
|
||||
|
||||
|
||||
Reference in New Issue
Block a user