@@ -13,16 +13,18 @@ namespace node {
13
13
14
14
struct ToStringHelper {
15
15
template <typename T>
16
- static std::string Convert (
17
- const T& value,
18
- std::string (T::* to_string)() const = &T::ToString) {
16
+ static std::string Convert (const T& value,
17
+ std::string (T::*to_string)()
18
+ const = &T::ToString) {
19
19
return (value.*to_string)();
20
20
}
21
21
template <typename T,
22
22
typename test_for_number = typename std::
23
- enable_if <std::is_arithmetic <T>::value , bool >::type ,
23
+ enable_if_t <std::is_arithmetic_v <T> || std::is_enum_v<T> , bool >,
24
24
typename dummy = bool >
25
- static std::string Convert (const T& value) { return std::to_string (value); }
25
+ static std::string Convert (const T& value) {
26
+ return std::to_string (value);
27
+ }
26
28
static std::string Convert (const char * value) {
27
29
return value != nullptr ? value : " (null)" ;
28
30
}
@@ -42,8 +44,7 @@ struct ToStringHelper {
42
44
const char * digits = " 0123456789abcdef" ;
43
45
do {
44
46
unsigned digit = v & ((1 << BASE_BITS) - 1 );
45
- *--ptr =
46
- (BASE_BITS < 4 ? static_cast <char >(' 0' + digit) : digits[digit]);
47
+ *--ptr = (BASE_BITS < 4 ? static_cast <char >(' 0' + digit) : digits[digit]);
47
48
} while ((v >>= BASE_BITS) != 0 );
48
49
return ptr;
49
50
}
@@ -76,22 +77,25 @@ inline std::string SPrintFImpl(const char* format) {
76
77
77
78
template <typename Arg, typename ... Args>
78
79
std::string COLD_NOINLINE SPrintFImpl ( // NOLINT(runtime/string)
79
- const char * format, Arg&& arg, Args&&... args) {
80
+ const char * format,
81
+ Arg&& arg,
82
+ Args&&... args) {
80
83
const char * p = strchr (format, ' %' );
81
84
CHECK_NOT_NULL (p); // If you hit this, you passed in too many arguments.
82
85
std::string ret (format, p);
83
86
// Ignore long / size_t modifiers
84
- while (strchr (" lz" , *++p) != nullptr ) {}
87
+ while (strchr (" lz" , *++p) != nullptr ) {
88
+ }
85
89
switch (*p) {
86
90
case ' %' : {
87
- return ret + ' %' + SPrintFImpl (p + 1 ,
88
- std::forward<Arg>(arg),
89
- std::forward<Args>(args)...);
91
+ return ret + ' %' +
92
+ SPrintFImpl (
93
+ p + 1 , std::forward<Arg>(arg), std::forward<Args>(args)...);
90
94
}
91
95
default : {
92
- return ret + ' %' + SPrintFImpl (p,
93
- std::forward<Arg>(arg),
94
- std::forward<Args>(args)...);
96
+ return ret + ' %' +
97
+ SPrintFImpl (
98
+ p, std::forward<Arg>(arg), std::forward<Args>(args)...);
95
99
}
96
100
case ' d' :
97
101
case ' i' :
@@ -109,12 +113,10 @@ std::string COLD_NOINLINE SPrintFImpl( // NOLINT(runtime/string)
109
113
ret += node::ToUpper (ToBaseString<4 >(arg));
110
114
break ;
111
115
case ' p' : {
112
- CHECK (std::is_pointer <typename std::remove_reference <Arg>::type>::value );
116
+ CHECK (std::is_pointer_v <typename std::remove_reference_t <Arg>> );
113
117
char out[20 ];
114
- int n = snprintf (out,
115
- sizeof (out),
116
- " %p" ,
117
- *reinterpret_cast <const void * const *>(&arg));
118
+ int n = snprintf (
119
+ out, sizeof (out), " %p" , *reinterpret_cast <const void * const *>(&arg));
118
120
CHECK_GE (n, 0 );
119
121
ret += out;
120
122
break ;
@@ -125,7 +127,8 @@ std::string COLD_NOINLINE SPrintFImpl( // NOLINT(runtime/string)
125
127
126
128
template <typename ... Args>
127
129
std::string COLD_NOINLINE SPrintF ( // NOLINT(runtime/string)
128
- const char * format, Args&&... args) {
130
+ const char * format,
131
+ Args&&... args) {
129
132
return SPrintFImpl (format, std::forward<Args>(args)...);
130
133
}
131
134
0 commit comments