Skip to content

Commit 332da79

Browse files
committed
Always inline value ctors
1 parent 7b273fb commit 332da79

File tree

1 file changed

+34
-28
lines changed

1 file changed

+34
-28
lines changed

include/fmt/base.h

+34-28
Original file line numberDiff line numberDiff line change
@@ -2145,48 +2145,54 @@ template <typename Context> class value {
21452145
named_arg_value<char_type> named_args;
21462146
};
21472147

2148-
constexpr FMT_INLINE value() : no_value() {}
2149-
constexpr FMT_INLINE value(signed char x) : int_value(x) {}
2150-
constexpr FMT_INLINE value(unsigned char x FMT_BUILTIN) : uint_value(x) {}
2151-
constexpr FMT_INLINE value(signed short x) : int_value(x) {}
2152-
constexpr FMT_INLINE value(unsigned short x FMT_BUILTIN) : uint_value(x) {}
2153-
constexpr FMT_INLINE value(int x) : int_value(x) {}
2154-
constexpr FMT_INLINE value(unsigned x FMT_BUILTIN) : uint_value(x) {}
2155-
FMT_CONSTEXPR FMT_INLINE value(long x FMT_BUILTIN) : value(long_type(x)) {}
2156-
FMT_CONSTEXPR FMT_INLINE value(unsigned long x FMT_BUILTIN)
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)
21572160
: value(ulong_type(x)) {}
2158-
constexpr FMT_INLINE value(long long x FMT_BUILTIN) : long_long_value(x) {}
2159-
constexpr FMT_INLINE value(unsigned long long x FMT_BUILTIN)
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)
21602164
: ulong_long_value(x) {}
2161-
FMT_INLINE value(int128_opt x FMT_BUILTIN) : int128_value(x) {}
2162-
FMT_INLINE value(uint128_opt x FMT_BUILTIN) : uint128_value(x) {}
2163-
constexpr FMT_INLINE value(bool x FMT_BUILTIN) : bool_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) {}
21642168

21652169
template <int N>
2166-
constexpr FMT_INLINE value(bitint<N> x FMT_BUILTIN) : long_long_value(x) {
2170+
constexpr FMT_ALWAYS_INLINE value(bitint<N> x FMT_BUILTIN)
2171+
: long_long_value(x) {
21672172
static_assert(N <= 64, "unsupported _BitInt");
21682173
}
21692174
template <int N>
2170-
constexpr FMT_INLINE value(ubitint<N> x FMT_BUILTIN) : ulong_long_value(x) {
2175+
constexpr FMT_ALWAYS_INLINE value(ubitint<N> x FMT_BUILTIN)
2176+
: ulong_long_value(x) {
21712177
static_assert(N <= 64, "unsupported _BitInt");
21722178
}
21732179

21742180
template <typename T, FMT_ENABLE_IF(is_char<T>::value)>
2175-
constexpr FMT_INLINE value(T x FMT_BUILTIN) : char_value(x) {
2181+
constexpr FMT_ALWAYS_INLINE value(T x FMT_BUILTIN) : char_value(x) {
21762182
static_assert(
21772183
std::is_same<T, char>::value || std::is_same<T, char_type>::value,
21782184
"mixing character types is disallowed");
21792185
}
21802186

2181-
constexpr FMT_INLINE value(float x FMT_BUILTIN) : float_value(x) {}
2182-
constexpr FMT_INLINE value(double x FMT_BUILTIN) : double_value(x) {}
2183-
FMT_INLINE value(long double x FMT_BUILTIN) : long_double_value(x) {}
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) {}
21842190

2185-
FMT_CONSTEXPR FMT_INLINE value(char_type* x FMT_BUILTIN) {
2191+
FMT_CONSTEXPR FMT_ALWAYS_INLINE value(char_type* x FMT_BUILTIN) {
21862192
string.data = x;
21872193
if (is_constant_evaluated()) string.size = 0;
21882194
}
2189-
FMT_CONSTEXPR FMT_INLINE value(const char_type* x FMT_BUILTIN) {
2195+
FMT_CONSTEXPR FMT_ALWAYS_INLINE value(const char_type* x FMT_BUILTIN) {
21902196
string.data = x;
21912197
if (is_constant_evaluated()) string.size = 0;
21922198
}
@@ -2199,13 +2205,13 @@ template <typename Context> class value {
21992205
string.data = sv.data();
22002206
string.size = sv.size();
22012207
}
2202-
FMT_INLINE value(void* x FMT_BUILTIN) : pointer(x) {}
2203-
FMT_INLINE value(const void* x FMT_BUILTIN) : pointer(x) {}
2204-
FMT_INLINE value(volatile void* x FMT_BUILTIN)
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)
22052211
: pointer(const_cast<const void*>(x)) {}
2206-
FMT_INLINE value(const volatile void* x FMT_BUILTIN)
2212+
FMT_ALWAYS_INLINE value(const volatile void* x FMT_BUILTIN)
22072213
: pointer(const_cast<const void*>(x)) {}
2208-
FMT_INLINE value(nullptr_t) : pointer(nullptr) {}
2214+
FMT_ALWAYS_INLINE value(nullptr_t) : pointer(nullptr) {}
22092215

22102216
template <typename T, FMT_ENABLE_IF(std::is_pointer<T>::value ||
22112217
std::is_member_pointer<T>::value)>
@@ -2227,7 +2233,7 @@ template <typename Context> class value {
22272233

22282234
template <typename T,
22292235
FMT_ENABLE_IF(use_formatter<T>::value || !FMT_BUILTIN_TYPES)>
2230-
FMT_CONSTEXPR20 FMT_INLINE value(T& x) : value(x, custom_tag()) {}
2236+
FMT_CONSTEXPR20 FMT_ALWAYS_INLINE value(T& x) : value(x, custom_tag()) {}
22312237

22322238
FMT_ALWAYS_INLINE value(const named_arg_info<char_type>* args, size_t size)
22332239
: named_args{args, size} {}

0 commit comments

Comments
 (0)