...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
In most cases boost::lexical_cast
is faster than scanf
, printf
,
std::stringstream
. For more detailed info you
can look at the tables below.
All the tests measure execution speed in milliseconds for 10000 iterations of the following code blocks:
Table 19.1. Tests source code
Test name |
Code |
---|---|
lexical_cast |
_out = boost::lexical_cast<OUTTYPE>(_in);
|
std::stringstream with construction |
std::stringstream ss; ss << _in; if (ss.fail()) throw std::logic_error(descr); ss >> _out; if (ss.fail()) throw std::logic_error(descr);
|
std::stringstream without construction |
ss << _in; // ss is an instance of std::stringstream if (ss.fail()) throw std::logic_error(descr); ss >> _out; if (ss.fail()) throw std::logic_error(descr); /* reseting std::stringstream to use it again */ ss.str(std::string()); ss.clear();
|
scanf/printf |
typename OUTTYPE::value_type buffer[500]; sprintf( (char*)buffer, conv, _in); _out = buffer;
|
Fastest results are highlitened with "!!! x !!!". Do not use this results to compare compilers, because tests were taken on different hardware.
Table 19.2. 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 !!! |
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 |
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 |
!!! 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 |
!!! 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 |
--- |
Table 19.3. Performance Table ( Clang version 15.0.7 )
From->To |
lexical_cast |
std::stringstream with construction |
std::stringstream without construction |
scanf/printf |
---|---|---|---|---|
string->char |
!!! <1 !!! |
68 |
5 |
6 |
string->signed char |
!!! <1 !!! |
59 |
5 |
7 |
string->unsigned char |
!!! <1 !!! |
59 |
5 |
7 |
string->int |
!!! 3 !!! |
69 |
11 |
10 |
string->short |
!!! 3 !!! |
64 |
11 |
10 |
string->long int |
!!! 3 !!! |
65 |
11 |
10 |
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 !!! |
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 |
--- |
Table 19.4. 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 !!! |
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 !!! |
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 !!! |
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 !!! |
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 !!! |
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 |
13 |
--- |
float->double |
!!! <1 !!! |
116 |
63 |
--- |
char->signed char |
!!! <1 !!! |
47 |
5 |
--- |