209
209
# define FMT_DEPRECATED /* deprecated */
210
210
#endif
211
211
212
- #ifdef FMT_ALWAYS_INLINE
213
- // Use the provided definition.
214
- #elif FMT_GCC_VERSION || FMT_CLANG_VERSION
215
- # define FMT_ALWAYS_INLINE inline __attribute__ ((always_inline))
216
- #else
217
- # define FMT_ALWAYS_INLINE inline
218
- #endif
219
- // A version of FMT_ALWAYS_INLINE to prevent code bloat in debug mode.
220
- #ifdef NDEBUG
221
- # define FMT_INLINE FMT_ALWAYS_INLINE
222
- #else
223
- # define FMT_INLINE inline
224
- #endif
225
-
226
212
#if FMT_GCC_VERSION || FMT_CLANG_VERSION
227
213
# define FMT_VISIBILITY (value ) __attribute__((visibility(value)))
228
214
#else
249
235
# define FMT_MSC_WARNING (...)
250
236
#endif
251
237
238
+ // Enable minimal optimizations for more compact code in debug mode.
239
+ FMT_PRAGMA_GCC (push_options)
240
+ #if !defined(__OPTIMIZE__) && !defined(__CUDACC__) && !defined(FMT_MODULE)
241
+ FMT_PRAGMA_GCC (optimize(" Og" ))
242
+ #define FMT_GCC_OPTIMIZED
243
+ #endif
244
+ FMT_PRAGMA_CLANG (diagnostic push)
245
+
246
+ #ifdef FMT_ALWAYS_INLINE
247
+ // Use the provided definition.
248
+ #elif FMT_GCC_VERSION || FMT_CLANG_VERSION
249
+ # define FMT_ALWAYS_INLINE inline __attribute__ ((always_inline))
250
+ #else
251
+ # define FMT_ALWAYS_INLINE inline
252
+ #endif
253
+ // A version of FMT_ALWAYS_INLINE to prevent code bloat in debug mode.
254
+ #if defined(NDEBUG) || defined(FMT_GCC_OPTIMIZED)
255
+ # define FMT_INLINE FMT_ALWAYS_INLINE
256
+ #else
257
+ # define FMT_INLINE inline
258
+ #endif
259
+
252
260
#ifndef FMT_BEGIN_NAMESPACE
253
261
# define FMT_BEGIN_NAMESPACE \
254
262
namespace fmt { \
297
305
using unused = int []; \
298
306
(void )unused { 0 , (expr, 0 )... }
299
307
300
- // Enable minimal optimizations for more compact code in debug mode.
301
- FMT_PRAGMA_GCC (push_options)
302
- #if !defined(__OPTIMIZE__) && !defined(__CUDACC__) && !defined(FMT_MODULE)
303
- FMT_PRAGMA_GCC (optimize(" Og" ))
304
- #endif
305
- FMT_PRAGMA_CLANG (diagnostic push)
306
-
307
308
FMT_BEGIN_NAMESPACE
308
309
309
310
// Implementations of enable_if_t and other metafunctions for older systems.
@@ -2145,54 +2146,48 @@ template <typename Context> class value {
2145
2146
named_arg_value<char_type> named_args;
2146
2147
};
2147
2148
2148
- constexpr FMT_ALWAYS_INLINE value () : no_value() {}
2149
- constexpr FMT_ALWAYS_INLINE value (signed char x) : int_value(x) {}
2150
- constexpr FMT_ALWAYS_INLINE value (unsigned char x FMT_BUILTIN)
2151
- : uint_value(x) {}
2152
- constexpr FMT_ALWAYS_INLINE value (signed short x) : int_value(x) {}
2153
- constexpr FMT_ALWAYS_INLINE value (unsigned short x FMT_BUILTIN)
2154
- : uint_value(x) {}
2155
- constexpr FMT_ALWAYS_INLINE value (int x) : int_value(x) {}
2156
- constexpr FMT_ALWAYS_INLINE value (unsigned x FMT_BUILTIN) : uint_value(x) {}
2157
- FMT_CONSTEXPR FMT_ALWAYS_INLINE value (long x FMT_BUILTIN)
2158
- : value(long_type(x)) {}
2159
- FMT_CONSTEXPR FMT_ALWAYS_INLINE value (unsigned long x FMT_BUILTIN)
2149
+ constexpr FMT_INLINE value () : no_value() {}
2150
+ constexpr FMT_INLINE value (signed char x) : int_value(x) {}
2151
+ constexpr FMT_INLINE value (unsigned char x FMT_BUILTIN) : uint_value(x) {}
2152
+ constexpr FMT_INLINE value (signed short x) : int_value(x) {}
2153
+ constexpr FMT_INLINE value (unsigned short x FMT_BUILTIN) : uint_value(x) {}
2154
+ constexpr FMT_INLINE value (int x) : int_value(x) {}
2155
+ constexpr FMT_INLINE value (unsigned x FMT_BUILTIN) : uint_value(x) {}
2156
+ FMT_CONSTEXPR FMT_INLINE value (long x FMT_BUILTIN) : value(long_type(x)) {}
2157
+ FMT_CONSTEXPR FMT_INLINE value (unsigned long x FMT_BUILTIN)
2160
2158
: value(ulong_type(x)) {}
2161
- constexpr FMT_ALWAYS_INLINE value (long long x FMT_BUILTIN)
2162
- : long_long_value(x) {}
2163
- constexpr FMT_ALWAYS_INLINE value (unsigned long long x FMT_BUILTIN)
2159
+ constexpr FMT_INLINE value (long long x FMT_BUILTIN) : long_long_value(x) {}
2160
+ constexpr FMT_INLINE value (unsigned long long x FMT_BUILTIN)
2164
2161
: ulong_long_value(x) {}
2165
- FMT_ALWAYS_INLINE value (int128_opt x FMT_BUILTIN) : int128_value(x) {}
2166
- FMT_ALWAYS_INLINE value (uint128_opt x FMT_BUILTIN) : uint128_value(x) {}
2167
- constexpr FMT_ALWAYS_INLINE value (bool x FMT_BUILTIN) : bool_value(x) {}
2162
+ FMT_INLINE value (int128_opt x FMT_BUILTIN) : int128_value(x) {}
2163
+ FMT_INLINE value (uint128_opt x FMT_BUILTIN) : uint128_value(x) {}
2164
+ constexpr FMT_INLINE value (bool x FMT_BUILTIN) : bool_value(x) {}
2168
2165
2169
2166
template <int N>
2170
- constexpr FMT_ALWAYS_INLINE value (bitint<N> x FMT_BUILTIN)
2171
- : long_long_value(x) {
2167
+ constexpr FMT_INLINE value (bitint<N> x FMT_BUILTIN) : long_long_value(x) {
2172
2168
static_assert (N <= 64 , " unsupported _BitInt" );
2173
2169
}
2174
2170
template <int N>
2175
- constexpr FMT_ALWAYS_INLINE value (ubitint<N> x FMT_BUILTIN)
2176
- : ulong_long_value(x) {
2171
+ constexpr FMT_INLINE value (ubitint<N> x FMT_BUILTIN) : ulong_long_value(x) {
2177
2172
static_assert (N <= 64 , " unsupported _BitInt" );
2178
2173
}
2179
2174
2180
2175
template <typename T, FMT_ENABLE_IF(is_char<T>::value)>
2181
- constexpr FMT_ALWAYS_INLINE value (T x FMT_BUILTIN) : char_value(x) {
2176
+ constexpr FMT_INLINE value (T x FMT_BUILTIN) : char_value(x) {
2182
2177
static_assert (
2183
2178
std::is_same<T, char >::value || std::is_same<T, char_type>::value,
2184
2179
" mixing character types is disallowed" );
2185
2180
}
2186
2181
2187
- constexpr FMT_ALWAYS_INLINE value (float x FMT_BUILTIN) : float_value(x) {}
2188
- constexpr FMT_ALWAYS_INLINE value (double x FMT_BUILTIN) : double_value(x) {}
2189
- FMT_ALWAYS_INLINE value (long double x FMT_BUILTIN) : long_double_value(x) {}
2182
+ constexpr FMT_INLINE value (float x FMT_BUILTIN) : float_value(x) {}
2183
+ constexpr FMT_INLINE value (double x FMT_BUILTIN) : double_value(x) {}
2184
+ FMT_INLINE value (long double x FMT_BUILTIN) : long_double_value(x) {}
2190
2185
2191
- FMT_CONSTEXPR FMT_ALWAYS_INLINE value (char_type* x FMT_BUILTIN) {
2186
+ FMT_CONSTEXPR FMT_INLINE value (char_type* x FMT_BUILTIN) {
2192
2187
string.data = x;
2193
2188
if (is_constant_evaluated ()) string.size = 0 ;
2194
2189
}
2195
- FMT_CONSTEXPR FMT_ALWAYS_INLINE value (const char_type* x FMT_BUILTIN) {
2190
+ FMT_CONSTEXPR FMT_INLINE value (const char_type* x FMT_BUILTIN) {
2196
2191
string.data = x;
2197
2192
if (is_constant_evaluated ()) string.size = 0 ;
2198
2193
}
@@ -2205,13 +2200,13 @@ template <typename Context> class value {
2205
2200
string.data = sv.data ();
2206
2201
string.size = sv.size ();
2207
2202
}
2208
- FMT_ALWAYS_INLINE value (void * x FMT_BUILTIN) : pointer(x) {}
2209
- FMT_ALWAYS_INLINE value (const void * x FMT_BUILTIN) : pointer(x) {}
2210
- FMT_ALWAYS_INLINE value (volatile void * x FMT_BUILTIN)
2203
+ FMT_INLINE value (void * x FMT_BUILTIN) : pointer(x) {}
2204
+ FMT_INLINE value (const void * x FMT_BUILTIN) : pointer(x) {}
2205
+ FMT_INLINE value (volatile void * x FMT_BUILTIN)
2211
2206
: pointer(const_cast <const void *>(x)) {}
2212
- FMT_ALWAYS_INLINE value (const volatile void * x FMT_BUILTIN)
2207
+ FMT_INLINE value (const volatile void * x FMT_BUILTIN)
2213
2208
: pointer(const_cast <const void *>(x)) {}
2214
- FMT_ALWAYS_INLINE value (nullptr_t ) : pointer(nullptr ) {}
2209
+ FMT_INLINE value (nullptr_t ) : pointer(nullptr ) {}
2215
2210
2216
2211
template <typename T, FMT_ENABLE_IF(std::is_pointer<T>::value ||
2217
2212
std::is_member_pointer<T>::value)>
@@ -2233,7 +2228,7 @@ template <typename Context> class value {
2233
2228
2234
2229
template <typename T,
2235
2230
FMT_ENABLE_IF (use_formatter<T>::value || !FMT_BUILTIN_TYPES)>
2236
- FMT_CONSTEXPR20 FMT_ALWAYS_INLINE value (T& x) : value(x, custom_tag()) {}
2231
+ FMT_CONSTEXPR20 FMT_INLINE value (T& x) : value(x, custom_tag()) {}
2237
2232
2238
2233
FMT_ALWAYS_INLINE value (const named_arg_info<char_type>* args, size_t size)
2239
2234
: named_args{args, size} {}
0 commit comments