MCPcopy Create free account
hub / github.com/fmtlib/fmt / value

Class value

include/fmt/base.h:2135–2275  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2133
2134// A formatting argument value.
2135template <typename Context> class value {
2136 public:
2137 using char_type = typename Context::char_type;
2138
2139 union {
2140 monostate no_value;
2141 int int_value;
2142 unsigned uint_value;
2143 long long long_long_value;
2144 ullong ulong_long_value;
2145 native_int128 int128_value;
2146 native_uint128 uint128_value;
2147 bool bool_value;
2148 char_type char_value;
2149 float float_value;
2150 double double_value;
2151 long double long_double_value;
2152 const void* pointer;
2153 string_value<char_type> string;
2154 custom_value<Context> custom;
2155 named_arg_value<char_type> named_args;
2156 };
2157
2158 constexpr FMT_INLINE value() : no_value() {}
2159 constexpr FMT_INLINE value(signed char x) : int_value(x) {}
2160 constexpr FMT_INLINE value(unsigned char x FMT_BUILTIN) : uint_value(x) {}
2161 constexpr FMT_INLINE value(signed short x) : int_value(x) {}
2162 constexpr FMT_INLINE value(unsigned short x FMT_BUILTIN) : uint_value(x) {}
2163 constexpr FMT_INLINE value(int x) : int_value(x) {}
2164 constexpr FMT_INLINE value(unsigned x FMT_BUILTIN) : uint_value(x) {}
2165 constexpr FMT_INLINE value(long x FMT_BUILTIN) : value(long_type(x)) {}
2166 constexpr FMT_INLINE value(unsigned long x FMT_BUILTIN)
2167 : value(ulong_type(x)) {}
2168 constexpr FMT_INLINE value(long long x FMT_BUILTIN) : long_long_value(x) {}
2169 constexpr FMT_INLINE value(ullong x FMT_BUILTIN) : ulong_long_value(x) {}
2170 FMT_INLINE value(native_int128 x FMT_BUILTIN) : int128_value(x) {}
2171 FMT_INLINE value(native_uint128 x FMT_BUILTIN) : uint128_value(x) {}
2172 constexpr FMT_INLINE value(bool x FMT_BUILTIN) : bool_value(x) {}
2173
2174 template <typename T, FMT_ENABLE_IF(is_code_unit<T>::value)>
2175 constexpr FMT_INLINE value(T x FMT_BUILTIN) : char_value(x) {
2176 static_assert(
2177 std::is_same<T, char>::value || std::is_same<T, char_type>::value,
2178 "mixing character types is disallowed");
2179 }
2180
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) {}
2184
2185 FMT_CONSTEXPR FMT_INLINE value(char_type* x FMT_BUILTIN) {
2186 string.data = x;
2187 if (is_constant_evaluated()) string.size = 0;
2188 }
2189 FMT_CONSTEXPR FMT_INLINE value(const char_type* x FMT_BUILTIN) {
2190 string.data = x;
2191 if (is_constant_evaluated()) string.size = 0;
2192 }

Callers 2

styled_argClass · 0.85
valueMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected