Flow123d  master-1fea4ce
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
format.h File Reference
#include <cassert>
#include <clocale>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <limits>
#include <memory>
#include <stdexcept>
#include <string>
#include <vector>
#include <utility>
#include <stdint.h>
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fmt::internal::DummyInt
 
class  std::numeric_limits< fmt::internal::DummyInt >
 
class  fmt::BasicStringRef< Char >
 
class  fmt::BasicCStringRef< Char >
 
class  fmt::FormatError
 
struct  fmt::internal::MakeUnsigned< T >
 
class  fmt::Buffer< T >
 
class  fmt::internal::MemoryBuffer< T, SIZE, Allocator >
 
class  fmt::internal::FixedBuffer< Char >
 
class  fmt::internal::BasicCharTraits< Char >
 
class  fmt::internal::CharTraits< char >
 
class  fmt::internal::CharTraits< wchar_t >
 
struct  fmt::internal::SignChecker< IsSigned >
 
struct  fmt::internal::SignChecker< false >
 
struct  fmt::internal::TypeSelector< FitsIn32Bits >
 
struct  fmt::internal::TypeSelector< false >
 
struct  fmt::internal::IntTraits< T >
 
struct  fmt::internal::BasicData< T >
 
struct  fmt::internal::NoThousandsSep
 
class  fmt::internal::ThousandsSep
 
struct  fmt::internal::Value
 
struct  fmt::internal::Value::StringValue< Char >
 
struct  fmt::internal::Value::CustomValue
 
struct  fmt::internal::Arg
 
struct  fmt::internal::Null< T >
 
struct  fmt::internal::WCharHelper< T, Char >
 
struct  fmt::internal::WCharHelper< T, wchar_t >
 
struct  fmt::internal::ConvertToIntImpl< T, ENABLE_CONVERSION >
 
struct  fmt::internal::ConvertToIntImpl2< T, ENABLE_CONVERSION >
 
struct  fmt::internal::ConvertToIntImpl2< T, true >
 
struct  fmt::internal::ConvertToInt< T >
 
struct  fmt::internal::EnableIf< B, T >
 
struct  fmt::internal::EnableIf< true, T >
 
struct  fmt::internal::Conditional< B, T, F >
 
struct  fmt::internal::Conditional< false, T, F >
 
struct  fmt::internal::Not< bool >
 
struct  fmt::internal::Not< false >
 
struct  fmt::internal::LConvCheck< T, T >
 
class  fmt::internal::MakeValue< Formatter >
 
class  fmt::internal::MakeArg< Formatter >
 
struct  fmt::internal::NamedArg< Char >
 
class  fmt::internal::RuntimeError
 
class  fmt::ArgList
 
class  fmt::ArgVisitor< Impl, Result >
 
struct  fmt::EmptySpec
 
struct  fmt::TypeSpec< TYPE >
 
struct  fmt::WidthSpec
 
struct  fmt::AlignSpec
 
struct  fmt::AlignTypeSpec< TYPE >
 
struct  fmt::FormatSpec
 
class  fmt::IntFormatSpec< T, SpecT, Char >
 
class  fmt::StrFormatSpec< Char >
 
class  fmt::internal::ArgMap< Char >
 
class  fmt::internal::ArgFormatterBase< Impl, Char >
 
class  fmt::internal::FormatterBase
 
class  fmt::BasicArgFormatter< Impl, Char >
 
class  fmt::ArgFormatter< Char >
 
class  fmt::BasicFormatter< CharType, ArgFormatter >
 
struct  fmt::internal::ArgArray< N, true >
 
struct  fmt::internal::ArgArray< N, false >
 
struct  fmt::internal::ArgType
 
class  fmt::SystemError
 
class  fmt::BasicWriter< Char >
 
class  fmt::BasicMemoryWriter< Char, Allocator >
 
class  fmt::BasicArrayWriter< Char >
 
class  fmt::FormatInt
 

Namespaces

 fmt
 
 fmt::internal
 
 std
 

Macros

#define FMT_SECURE_SCL   0
 
#define FMT_MSC_VER   0
 
#define FMT_API
 
#define FMT_GCC_EXTENSION
 
#define FMT_HAS_FEATURE(x)   0
 
#define FMT_HAS_BUILTIN(x)   0
 
#define FMT_HAS_CPP_ATTRIBUTE(x)   0
 
#define FMT_USE_VARIADIC_TEMPLATES
 
#define FMT_USE_RVALUE_REFERENCES
 
#define FMT_EXCEPTIONS   1
 
#define FMT_THROW(x)   throw x
 
#define FMT_USE_NOEXCEPT   0
 
#define FMT_NOEXCEPT   throw()
 
#define FMT_USE_DELETED_FUNCTIONS   0
 
#define FMT_DELETED_OR_UNDEFINED
 
#define FMT_DISALLOW_COPY_AND_ASSIGN(TypeName)
 
#define FMT_USE_USER_DEFINED_LITERALS
 
#define FMT_ASSERT(condition, message)   assert((condition) && message)
 
#define FMT_SPECIALIZE_MAKE_UNSIGNED(T, U)
 
#define FMT_USE_EXTERN_TEMPLATES   (__clang__ && FMT_USE_VARIADIC_TEMPLATES)
 
#define FMT_USE_WINDOWS_H   0
 
#define FMT_DISABLE_CONVERSION_TO_INT(Type)
 
#define FMT_MAKE_VALUE_(Type, field, TYPE, rhs)
 
#define FMT_MAKE_VALUE(Type, field, TYPE)    FMT_MAKE_VALUE_(Type, field, TYPE, value)
 
#define FMT_MAKE_STR_VALUE(Type, TYPE)
 
#define FMT_MAKE_WSTR_VALUE(Type, TYPE)
 
#define FMT_DISPATCH(call)   static_cast<Impl*>(this)->call
 
#define FMT_DEFINE_INT_FORMATTERS(TYPE)
 
#define FMT_GEN(n, f)   FMT_GEN##n(f)
 
#define FMT_GEN1(f)   f(0)
 
#define FMT_GEN2(f)   FMT_GEN1(f), f(1)
 
#define FMT_GEN3(f)   FMT_GEN2(f), f(2)
 
#define FMT_GEN4(f)   FMT_GEN3(f), f(3)
 
#define FMT_GEN5(f)   FMT_GEN4(f), f(4)
 
#define FMT_GEN6(f)   FMT_GEN5(f), f(5)
 
#define FMT_GEN7(f)   FMT_GEN6(f), f(6)
 
#define FMT_GEN8(f)   FMT_GEN7(f), f(7)
 
#define FMT_GEN9(f)   FMT_GEN8(f), f(8)
 
#define FMT_GEN10(f)   FMT_GEN9(f), f(9)
 
#define FMT_GEN11(f)   FMT_GEN10(f), f(10)
 
#define FMT_GEN12(f)   FMT_GEN11(f), f(11)
 
#define FMT_GEN13(f)   FMT_GEN12(f), f(12)
 
#define FMT_GEN14(f)   FMT_GEN13(f), f(13)
 
#define FMT_GEN15(f)   FMT_GEN14(f), f(14)
 
#define FMT_ARG_TYPE_DEFAULT(n)   ArgType t##n = ArgType()
 
#define FMT_MAKE_TEMPLATE_ARG(n)   typename T##n
 
#define FMT_MAKE_ARG_TYPE(n)   T##n
 
#define FMT_MAKE_ARG(n)   const T##n &v##n
 
#define FMT_ASSIGN_char(n)    arr[n] = fmt::internal::MakeValue< fmt::BasicFormatter<char> >(v##n)
 
#define FMT_ASSIGN_wchar_t(n)    arr[n] = fmt::internal::MakeValue< fmt::BasicFormatter<wchar_t> >(v##n)
 
#define FMT_MAKE_REF(n)    fmt::internal::MakeValue< fmt::BasicFormatter<Char> >(v##n)
 
#define FMT_MAKE_REF2(n)   v##n
 
#define FMT_WRAP1(func, arg_type, n)
 
#define FMT_VARIADIC_VOID(func, arg_type)
 
#define FMT_CTOR(ctor, func, arg0_type, arg1_type, n)
 
#define FMT_VARIADIC_CTOR(ctor, func, arg0_type, arg1_type)
 
#define FMT_FOR_EACH1(f, x0)   f(x0, 0)
 
#define FMT_FOR_EACH2(f, x0, x1)    FMT_FOR_EACH1(f, x0), f(x1, 1)
 
#define FMT_FOR_EACH3(f, x0, x1, x2)    FMT_FOR_EACH2(f, x0 ,x1), f(x2, 2)
 
#define FMT_FOR_EACH4(f, x0, x1, x2, x3)    FMT_FOR_EACH3(f, x0, x1, x2), f(x3, 3)
 
#define FMT_FOR_EACH5(f, x0, x1, x2, x3, x4)    FMT_FOR_EACH4(f, x0, x1, x2, x3), f(x4, 4)
 
#define FMT_FOR_EACH6(f, x0, x1, x2, x3, x4, x5)    FMT_FOR_EACH5(f, x0, x1, x2, x3, x4), f(x5, 5)
 
#define FMT_FOR_EACH7(f, x0, x1, x2, x3, x4, x5, x6)    FMT_FOR_EACH6(f, x0, x1, x2, x3, x4, x5), f(x6, 6)
 
#define FMT_FOR_EACH8(f, x0, x1, x2, x3, x4, x5, x6, x7)    FMT_FOR_EACH7(f, x0, x1, x2, x3, x4, x5, x6), f(x7, 7)
 
#define FMT_FOR_EACH9(f, x0, x1, x2, x3, x4, x5, x6, x7, x8)    FMT_FOR_EACH8(f, x0, x1, x2, x3, x4, x5, x6, x7), f(x8, 8)
 
#define FMT_FOR_EACH10(f, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9)    FMT_FOR_EACH9(f, x0, x1, x2, x3, x4, x5, x6, x7, x8), f(x9, 9)
 
#define FMT_EXPAND(args)   args
 
#define FMT_NARG(...)   FMT_NARG_(__VA_ARGS__, FMT_RSEQ_N())
 
#define FMT_NARG_(...)   FMT_EXPAND(FMT_ARG_N(__VA_ARGS__))
 
#define FMT_ARG_N(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...)   N
 
#define FMT_RSEQ_N()   10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
 
#define FMT_CONCAT(a, b)   a##b
 
#define FMT_FOR_EACH_(N, f, ...)    FMT_EXPAND(FMT_CONCAT(FMT_FOR_EACH, N)(f, __VA_ARGS__))
 
#define FMT_FOR_EACH(f, ...)    FMT_EXPAND(FMT_FOR_EACH_(FMT_NARG(__VA_ARGS__), f, __VA_ARGS__))
 
#define FMT_ADD_ARG_NAME(type, index)   type arg##index
 
#define FMT_GET_ARG_NAME(type, index)   arg##index
 
#define FMT_WRAP(Char, ReturnType, func, call, n, ...)
 
#define FMT_VARIADIC_(Char, ReturnType, func, call, ...)
 
#define FMT_VARIADIC(ReturnType, func, ...)    FMT_VARIADIC_(char, ReturnType, func, return func, __VA_ARGS__)
 
#define FMT_VARIADIC_W(ReturnType, func, ...)    FMT_VARIADIC_(wchar_t, ReturnType, func, return func, __VA_ARGS__)
 
#define FMT_CAPTURE_ARG_(id, index)   ::fmt::arg(#id, id)
 
#define FMT_CAPTURE_ARG_W_(id, index)   ::fmt::arg(L###id, id)
 
#define FMT_CAPTURE(...)   FMT_FOR_EACH(FMT_CAPTURE_ARG_, __VA_ARGS__)
 
#define FMT_CAPTURE_W(...)   FMT_FOR_EACH(FMT_CAPTURE_ARG_W_, __VA_ARGS__)
 
#define FMT_FUNC
 

Typedefs

typedef std::numeric_limits< fmt::internal::DummyIntfmt::internal::FPUtil
 
typedef BasicWriter< char > fmt::Writer
 
typedef BasicWriter< wchar_t > fmt::WWriter
 
typedef BasicStringRef< char > fmt::StringRef
 
typedef BasicStringRef< wchar_t > fmt::WStringRef
 
typedef BasicCStringRef< char > fmt::CStringRef
 
typedef BasicCStringRef< wchar_t > fmt::WCStringRef
 
typedef BasicData fmt::internal::Data
 
typedef char fmt::internal::Yes[1]
 
typedef char fmt::internal::No[2]
 
typedef BasicMemoryWriter< char > fmt::MemoryWriter
 
typedef BasicMemoryWriter< wchar_t > fmt::WMemoryWriter
 
typedef BasicArrayWriter< char > fmt::ArrayWriter
 
typedef BasicArrayWriter< wchar_t > fmt::WArrayWriter
 

Enumerations

enum  { fmt::internal::INLINE_BUFFER_SIZE = 500 }
 
enum  fmt::Alignment {
  fmt::ALIGN_DEFAULT , fmt::ALIGN_LEFT , fmt::ALIGN_RIGHT , fmt::ALIGN_CENTER ,
  fmt::ALIGN_NUMERIC
}
 
enum  {
  fmt::SIGN_FLAG = 1 , fmt::PLUS_FLAG = 2 , fmt::MINUS_FLAG = 4 , fmt::HASH_FLAG = 8 ,
  fmt::CHAR_FLAG = 0x10
}
 
enum  fmt::Color {
  fmt::BLACK , fmt::RED , fmt::GREEN , fmt::YELLOW ,
  fmt::BLUE , fmt::MAGENTA , fmt::CYAN , fmt::WHITE
}
 

Functions

DummyInt fmt::internal::signbit (...)
 
DummyInt fmt::internal::_ecvt_s (...)
 
DummyInt fmt::internal::isinf (...)
 
DummyInt fmt::internal::_finite (...)
 
DummyInt fmt::internal::isnan (...)
 
DummyInt fmt::internal::_isnan (...)
 
template<typename T >
fmt::internal::check (T value)
 
 fmt::internal::FMT_SPECIALIZE_MAKE_UNSIGNED (char, unsigned char)
 
 fmt::internal::FMT_SPECIALIZE_MAKE_UNSIGNED (signed char, unsigned char)
 
 fmt::internal::FMT_SPECIALIZE_MAKE_UNSIGNED (short, unsigned short)
 
 fmt::internal::FMT_SPECIALIZE_MAKE_UNSIGNED (int, unsigned)
 
 fmt::internal::FMT_SPECIALIZE_MAKE_UNSIGNED (long, unsigned long)
 
 fmt::internal::FMT_SPECIALIZE_MAKE_UNSIGNED (LongLong, ULongLong)
 
template<typename Int >
MakeUnsigned< Int >::Type fmt::internal::to_unsigned (Int value)
 
template<typename T >
T * fmt::internal::make_ptr (T *ptr, std::size_t)
 
template<typename T >
bool fmt::internal::is_negative (T value)
 
FMT_API void fmt::internal::report_unknown_type (char code, const char *type)
 
unsigned fmt::internal::count_digits (uint64_t n)
 
template<typename UInt , typename Char , typename ThousandsSep >
void fmt::internal::format_decimal (Char *buffer, UInt value, unsigned num_digits, ThousandsSep thousands_sep)
 
template<typename UInt , typename Char >
void fmt::internal::format_decimal (Char *buffer, UInt value, unsigned num_digits)
 
template<typename T >
T & fmt::internal::get ()
 
Yes & fmt::internal::convert (fmt::ULongLong)
 
No & fmt::internal::convert (...)
 
 fmt::internal::FMT_DISABLE_CONVERSION_TO_INT (float)
 
 fmt::internal::FMT_DISABLE_CONVERSION_TO_INT (double)
 
 fmt::internal::FMT_DISABLE_CONVERSION_TO_INT (long double)
 
template<typename LConv >
StringRef fmt::internal::thousands_sep (LConv *lc, LConvCheck< char *LConv::*, &LConv::thousands_sep >=0)
 
fmt::StringRef fmt::internal::thousands_sep (...)
 
IntFormatSpec< int, TypeSpec< 'b'> > fmt::bin (int value)
 
IntFormatSpec< int, TypeSpec< 'o'> > fmt::oct (int value)
 
IntFormatSpec< int, TypeSpec< 'x'> > fmt::hex (int value)
 
IntFormatSpec< int, TypeSpec< 'X'> > fmt::hexu (int value)
 
template<char TYPE_CODE, typename Char >
IntFormatSpec< int, AlignTypeSpec< TYPE_CODE >, Char > fmt::pad (int value, unsigned width, Char fill=' ')
 
template<typename Char >
StrFormatSpec< Char > fmt::pad (const Char *str, unsigned width, Char fill=' ')
 
StrFormatSpec< wchar_t > fmt::pad (const wchar_t *str, unsigned width, char fill=' ')
 
uint64_t fmt::internal::make_type ()
 
template<typename T >
uint64_t fmt::internal::make_type (const T &arg)
 
uint64_t fmt::internal::make_type (FMT_GEN15(FMT_ARG_TYPE_DEFAULT))
 
FMT_API void fmt::format_system_error (fmt::Writer &out, int error_code, fmt::StringRef message) FMT_NOEXCEPT
 
FMT_API void fmt::report_system_error (int error_code, StringRef message) FMT_NOEXCEPT
 
FMT_API void fmt::print_colored (Color c, CStringRef format, ArgList args)
 
std::string fmt::format (CStringRef format_str, ArgList args)
 
std::wstring fmt::format (WCStringRef format_str, ArgList args)
 
FMT_API void fmt::print (std::FILE *f, CStringRef format_str, ArgList args)
 
FMT_API void fmt::print (CStringRef format_str, ArgList args)
 
template<typename T >
void fmt::format_decimal (char *&buffer, T value)
 
template<typename T >
internal::NamedArg< char > fmt::arg (StringRef name, const T &arg)
 
template<typename T >
internal::NamedArg< wchar_t > fmt::arg (WStringRef name, const T &arg)
 
template<typename Char >
void fmt::arg (StringRef, const internal::NamedArg< Char > &) FMT_DELETED_OR_UNDEFINED
 
template<typename Char >
void fmt::arg (WStringRef, const internal::NamedArg< Char > &) FMT_DELETED_OR_UNDEFINED
 
template<typename Char >
bool fmt::internal::is_name_start (Char c)
 
template<typename Char >
unsigned fmt::internal::parse_nonnegative_int (const Char *&s)
 
void fmt::internal::require_numeric_argument (const Arg &arg, char spec)
 
template<typename Char >
void fmt::internal::check_sign (const Char *&s, const Arg &arg)
 

Variables

FMT_GCC_EXTENSION typedef long long fmt::LongLong
 
FMT_GCC_EXTENSION typedef unsigned long long fmt::ULongLong
 

Macro Definition Documentation

◆ FMT_ADD_ARG_NAME

#define FMT_ADD_ARG_NAME (   type,
  index 
)    type arg##index

Definition at line 3332 of file format.h.

◆ FMT_API

#define FMT_API

Definition at line 75 of file format.h.

◆ FMT_ARG_N

#define FMT_ARG_N (   _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  _10,
  N,
  ... 
)    N

Definition at line 3323 of file format.h.

◆ FMT_ARG_TYPE_DEFAULT

#define FMT_ARG_TYPE_DEFAULT (   n)    ArgType t##n = ArgType()

Definition at line 2116 of file format.h.

◆ FMT_ASSERT

#define FMT_ASSERT (   condition,
  message 
)    assert((condition) && message)

Definition at line 229 of file format.h.

◆ FMT_ASSIGN_char

#define FMT_ASSIGN_char (   n)     arr[n] = fmt::internal::MakeValue< fmt::BasicFormatter<char> >(v##n)

Definition at line 2130 of file format.h.

◆ FMT_ASSIGN_wchar_t

#define FMT_ASSIGN_wchar_t (   n)     arr[n] = fmt::internal::MakeValue< fmt::BasicFormatter<wchar_t> >(v##n)

Definition at line 2132 of file format.h.

◆ FMT_CAPTURE

#define FMT_CAPTURE (   ...)    FMT_FOR_EACH(FMT_CAPTURE_ARG_, __VA_ARGS__)

\rst Convenient macro to capture the arguments' names and values into several fmt::arg(name, value).

Example**::

int x = 1, y = 2; print("point: ({x}, {y})", FMT_CAPTURE(x, y)); same as: print("point: ({x}, {y})", arg("x", x), arg("y", y));

\endrst

Definition at line 3431 of file format.h.

◆ FMT_CAPTURE_ARG_

#define FMT_CAPTURE_ARG_ (   id,
  index 
)    ::fmt::arg(#id, id)

Definition at line 3413 of file format.h.

◆ FMT_CAPTURE_ARG_W_

#define FMT_CAPTURE_ARG_W_ (   id,
  index 
)    ::fmt::arg(L###id, id)

Definition at line 3415 of file format.h.

◆ FMT_CAPTURE_W

#define FMT_CAPTURE_W (   ...)    FMT_FOR_EACH(FMT_CAPTURE_ARG_W_, __VA_ARGS__)

Definition at line 3433 of file format.h.

◆ FMT_CONCAT

#define FMT_CONCAT (   a,
 
)    a##b

Definition at line 3326 of file format.h.

◆ FMT_CTOR

#define FMT_CTOR (   ctor,
  func,
  arg0_type,
  arg1_type,
 
)
Value:
template <FMT_GEN(n, FMT_MAKE_TEMPLATE_ARG)> \
ctor(arg0_type arg0, arg1_type arg1, FMT_GEN(n, FMT_MAKE_ARG)) { \
func(arg0, arg1, fmt::ArgList( \
}
#define FMT_MAKE_ARG(n)
Definition: format.h:2129
#define FMT_MAKE_REF2(n)
Definition: format.h:2160
#define FMT_GEN(n, f)
Definition: format.h:2045
#define FMT_MAKE_REF(n)
Definition: format.h:2158
Array< double > array
Definition: armor.hh:938
uint64_t make_type()
Definition: format.h:2063

Definition at line 2181 of file format.h.

◆ FMT_DEFINE_INT_FORMATTERS

#define FMT_DEFINE_INT_FORMATTERS (   TYPE)

Definition at line 1695 of file format.h.

◆ FMT_DELETED_OR_UNDEFINED

#define FMT_DELETED_OR_UNDEFINED

Definition at line 210 of file format.h.

◆ FMT_DISABLE_CONVERSION_TO_INT

#define FMT_DISABLE_CONVERSION_TO_INT (   Type)
Value:
template <> \
struct ConvertToInt<Type> { enum { value = 0 }; }
static constexpr bool value
Definition: json.hpp:87

Definition at line 1092 of file format.h.

◆ FMT_DISALLOW_COPY_AND_ASSIGN

#define FMT_DISALLOW_COPY_AND_ASSIGN (   TypeName)
Value:
TypeName(const TypeName&); \
TypeName& operator=(const TypeName&)

Definition at line 211 of file format.h.

◆ FMT_DISPATCH

#define FMT_DISPATCH (   call)    static_cast<Impl*>(this)->call

Definition at line 1392 of file format.h.

◆ FMT_EXCEPTIONS

#define FMT_EXCEPTIONS   1

Definition at line 167 of file format.h.

◆ FMT_EXPAND

#define FMT_EXPAND (   args)    args

Definition at line 3317 of file format.h.

◆ FMT_FOR_EACH

#define FMT_FOR_EACH (   f,
  ... 
)     FMT_EXPAND(FMT_FOR_EACH_(FMT_NARG(__VA_ARGS__), f, __VA_ARGS__))

Definition at line 3329 of file format.h.

◆ FMT_FOR_EACH1

#define FMT_FOR_EACH1 (   f,
  x0 
)    f(x0, 0)

Definition at line 2205 of file format.h.

◆ FMT_FOR_EACH10

#define FMT_FOR_EACH10 (   f,
  x0,
  x1,
  x2,
  x3,
  x4,
  x5,
  x6,
  x7,
  x8,
  x9 
)     FMT_FOR_EACH9(f, x0, x1, x2, x3, x4, x5, x6, x7, x8), f(x9, 9)

Definition at line 2222 of file format.h.

◆ FMT_FOR_EACH2

#define FMT_FOR_EACH2 (   f,
  x0,
  x1 
)     FMT_FOR_EACH1(f, x0), f(x1, 1)

Definition at line 2206 of file format.h.

◆ FMT_FOR_EACH3

#define FMT_FOR_EACH3 (   f,
  x0,
  x1,
  x2 
)     FMT_FOR_EACH2(f, x0 ,x1), f(x2, 2)

Definition at line 2208 of file format.h.

◆ FMT_FOR_EACH4

#define FMT_FOR_EACH4 (   f,
  x0,
  x1,
  x2,
  x3 
)     FMT_FOR_EACH3(f, x0, x1, x2), f(x3, 3)

Definition at line 2210 of file format.h.

◆ FMT_FOR_EACH5

#define FMT_FOR_EACH5 (   f,
  x0,
  x1,
  x2,
  x3,
  x4 
)     FMT_FOR_EACH4(f, x0, x1, x2, x3), f(x4, 4)

Definition at line 2212 of file format.h.

◆ FMT_FOR_EACH6

#define FMT_FOR_EACH6 (   f,
  x0,
  x1,
  x2,
  x3,
  x4,
  x5 
)     FMT_FOR_EACH5(f, x0, x1, x2, x3, x4), f(x5, 5)

Definition at line 2214 of file format.h.

◆ FMT_FOR_EACH7

#define FMT_FOR_EACH7 (   f,
  x0,
  x1,
  x2,
  x3,
  x4,
  x5,
  x6 
)     FMT_FOR_EACH6(f, x0, x1, x2, x3, x4, x5), f(x6, 6)

Definition at line 2216 of file format.h.

◆ FMT_FOR_EACH8

#define FMT_FOR_EACH8 (   f,
  x0,
  x1,
  x2,
  x3,
  x4,
  x5,
  x6,
  x7 
)     FMT_FOR_EACH7(f, x0, x1, x2, x3, x4, x5, x6), f(x7, 7)

Definition at line 2218 of file format.h.

◆ FMT_FOR_EACH9

#define FMT_FOR_EACH9 (   f,
  x0,
  x1,
  x2,
  x3,
  x4,
  x5,
  x6,
  x7,
  x8 
)     FMT_FOR_EACH8(f, x0, x1, x2, x3, x4, x5, x6, x7), f(x8, 8)

Definition at line 2220 of file format.h.

◆ FMT_FOR_EACH_

#define FMT_FOR_EACH_ (   N,
  f,
  ... 
)     FMT_EXPAND(FMT_CONCAT(FMT_FOR_EACH, N)(f, __VA_ARGS__))

Definition at line 3327 of file format.h.

◆ FMT_FUNC

#define FMT_FUNC

Definition at line 3799 of file format.h.

◆ FMT_GCC_EXTENSION

#define FMT_GCC_EXTENSION

Definition at line 97 of file format.h.

◆ FMT_GEN

#define FMT_GEN (   n,
 
)    FMT_GEN##n(f)

Definition at line 2045 of file format.h.

◆ FMT_GEN1

#define FMT_GEN1 (   f)    f(0)

Definition at line 2046 of file format.h.

◆ FMT_GEN10

#define FMT_GEN10 (   f)    FMT_GEN9(f), f(9)

Definition at line 2055 of file format.h.

◆ FMT_GEN11

#define FMT_GEN11 (   f)    FMT_GEN10(f), f(10)

Definition at line 2056 of file format.h.

◆ FMT_GEN12

#define FMT_GEN12 (   f)    FMT_GEN11(f), f(11)

Definition at line 2057 of file format.h.

◆ FMT_GEN13

#define FMT_GEN13 (   f)    FMT_GEN12(f), f(12)

Definition at line 2058 of file format.h.

◆ FMT_GEN14

#define FMT_GEN14 (   f)    FMT_GEN13(f), f(13)

Definition at line 2059 of file format.h.

◆ FMT_GEN15

#define FMT_GEN15 (   f)    FMT_GEN14(f), f(14)

Definition at line 2060 of file format.h.

◆ FMT_GEN2

#define FMT_GEN2 (   f)    FMT_GEN1(f), f(1)

Definition at line 2047 of file format.h.

◆ FMT_GEN3

#define FMT_GEN3 (   f)    FMT_GEN2(f), f(2)

Definition at line 2048 of file format.h.

◆ FMT_GEN4

#define FMT_GEN4 (   f)    FMT_GEN3(f), f(3)

Definition at line 2049 of file format.h.

◆ FMT_GEN5

#define FMT_GEN5 (   f)    FMT_GEN4(f), f(4)

Definition at line 2050 of file format.h.

◆ FMT_GEN6

#define FMT_GEN6 (   f)    FMT_GEN5(f), f(5)

Definition at line 2051 of file format.h.

◆ FMT_GEN7

#define FMT_GEN7 (   f)    FMT_GEN6(f), f(6)

Definition at line 2052 of file format.h.

◆ FMT_GEN8

#define FMT_GEN8 (   f)    FMT_GEN7(f), f(7)

Definition at line 2053 of file format.h.

◆ FMT_GEN9

#define FMT_GEN9 (   f)    FMT_GEN8(f), f(8)

Definition at line 2054 of file format.h.

◆ FMT_GET_ARG_NAME

#define FMT_GET_ARG_NAME (   type,
  index 
)    arg##index

Definition at line 3333 of file format.h.

◆ FMT_HAS_BUILTIN

#define FMT_HAS_BUILTIN (   x)    0

Definition at line 125 of file format.h.

◆ FMT_HAS_CPP_ATTRIBUTE

#define FMT_HAS_CPP_ATTRIBUTE (   x)    0

Definition at line 131 of file format.h.

◆ FMT_HAS_FEATURE

#define FMT_HAS_FEATURE (   x)    0

Definition at line 119 of file format.h.

◆ FMT_MAKE_ARG

#define FMT_MAKE_ARG (   n)    const T##n &v##n

Definition at line 2129 of file format.h.

◆ FMT_MAKE_ARG_TYPE

#define FMT_MAKE_ARG_TYPE (   n)    T##n

Definition at line 2128 of file format.h.

◆ FMT_MAKE_REF

#define FMT_MAKE_REF (   n)     fmt::internal::MakeValue< fmt::BasicFormatter<Char> >(v##n)

Definition at line 2158 of file format.h.

◆ FMT_MAKE_REF2

#define FMT_MAKE_REF2 (   n)    v##n

Definition at line 2160 of file format.h.

◆ FMT_MAKE_STR_VALUE

#define FMT_MAKE_STR_VALUE (   Type,
  TYPE 
)
Value:
MakeValue(Type value) { set_string(value); } \
static uint64_t type(Type) { return Arg::TYPE; }

Definition at line 1238 of file format.h.

◆ FMT_MAKE_TEMPLATE_ARG

#define FMT_MAKE_TEMPLATE_ARG (   n)    typename T##n

Definition at line 2127 of file format.h.

◆ FMT_MAKE_VALUE

#define FMT_MAKE_VALUE (   Type,
  field,
  TYPE 
)     FMT_MAKE_VALUE_(Type, field, TYPE, value)

Definition at line 1190 of file format.h.

◆ FMT_MAKE_VALUE_

#define FMT_MAKE_VALUE_ (   Type,
  field,
  TYPE,
  rhs 
)
Value:
MakeValue(Type value) { field = rhs; } \
static uint64_t type(Type) { return Arg::TYPE; }

Definition at line 1186 of file format.h.

◆ FMT_MAKE_WSTR_VALUE

#define FMT_MAKE_WSTR_VALUE (   Type,
  TYPE 
)
Value:
set_string(value); \
} \
static uint64_t type(Type) { return Arg::TYPE; }

Definition at line 1250 of file format.h.

◆ FMT_MSC_VER

#define FMT_MSC_VER   0

Definition at line 56 of file format.h.

◆ FMT_NARG

#define FMT_NARG (   ...)    FMT_NARG_(__VA_ARGS__, FMT_RSEQ_N())

Definition at line 3321 of file format.h.

◆ FMT_NARG_

#define FMT_NARG_ (   ...)    FMT_EXPAND(FMT_ARG_N(__VA_ARGS__))

Definition at line 3322 of file format.h.

◆ FMT_NOEXCEPT

#define FMT_NOEXCEPT   throw()

Definition at line 190 of file format.h.

◆ FMT_RSEQ_N

#define FMT_RSEQ_N ( )    10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

Definition at line 3324 of file format.h.

◆ FMT_SECURE_SCL

#define FMT_SECURE_SCL   0

Definition at line 46 of file format.h.

◆ FMT_SPECIALIZE_MAKE_UNSIGNED

#define FMT_SPECIALIZE_MAKE_UNSIGNED (   T,
 
)
Value:
template <> \
struct MakeUnsigned<T> { typedef U Type; }

Definition at line 548 of file format.h.

◆ FMT_THROW

#define FMT_THROW (   x)    throw x

Definition at line 172 of file format.h.

◆ FMT_USE_DELETED_FUNCTIONS

#define FMT_USE_DELETED_FUNCTIONS   0

Definition at line 200 of file format.h.

◆ FMT_USE_EXTERN_TEMPLATES

#define FMT_USE_EXTERN_TEMPLATES   (__clang__ && FMT_USE_VARIADIC_TEMPLATES)

Definition at line 841 of file format.h.

◆ FMT_USE_NOEXCEPT

#define FMT_USE_NOEXCEPT   0

Definition at line 180 of file format.h.

◆ FMT_USE_RVALUE_REFERENCES

#define FMT_USE_RVALUE_REFERENCES
Value:
(FMT_HAS_FEATURE(cxx_rvalue_references) || \
(FMT_GCC_VERSION >= 403 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1600)
#define FMT_MSC_VER
Definition: format.h:56
#define FMT_HAS_FEATURE(x)
Definition: format.h:119

Definition at line 149 of file format.h.

◆ FMT_USE_USER_DEFINED_LITERALS

#define FMT_USE_USER_DEFINED_LITERALS
Value:
(FMT_HAS_FEATURE(cxx_user_literals) || \
(FMT_GCC_VERSION >= 407 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1900) && \
(!defined(FMT_ICC_VERSION) || FMT_ICC_VERSION >= 1500)
#define FMT_USE_VARIADIC_TEMPLATES
Definition: format.h:138
#define FMT_USE_RVALUE_REFERENCES
Definition: format.h:149

Definition at line 221 of file format.h.

◆ FMT_USE_VARIADIC_TEMPLATES

#define FMT_USE_VARIADIC_TEMPLATES
Value:
(FMT_HAS_FEATURE(cxx_variadic_templates) || \
(FMT_GCC_VERSION >= 404 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1800)

Definition at line 138 of file format.h.

◆ FMT_USE_WINDOWS_H

#define FMT_USE_WINDOWS_H   0

Definition at line 945 of file format.h.

◆ FMT_VARIADIC

#define FMT_VARIADIC (   ReturnType,
  func,
  ... 
)     FMT_VARIADIC_(char, ReturnType, func, return func, __VA_ARGS__)

\rst Defines a variadic function with the specified return type, function name and argument types passed as variable arguments to this macro.

Example**::

void print_error(const char *file, int line, const char *format, fmt::ArgList args) { fmt::print("{}: {}: ", file, line); fmt::print(format, args); } FMT_VARIADIC(void, print_error, const char *, int, const char *)

FMT_VARIADIC is used for compatibility with legacy C++ compilers that don't implement variadic templates. You don't have to use this macro if you don't need legacy compiler support and can use variadic templates directly::

template <typename... Args> void print_error(const char *file, int line, const char *format, const Args & ... args) { fmt::print("{}: {}: ", file, line); fmt::print(format, args...); } \endrst

Definition at line 3407 of file format.h.

◆ FMT_VARIADIC_

#define FMT_VARIADIC_ (   Char,
  ReturnType,
  func,
  call,
  ... 
)
Value:
inline ReturnType func(FMT_FOR_EACH(FMT_ADD_ARG_NAME, __VA_ARGS__)) { \
call(FMT_FOR_EACH(FMT_GET_ARG_NAME, __VA_ARGS__), fmt::ArgList()); \
} \
FMT_WRAP(Char, ReturnType, func, call, 1, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 2, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 3, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 4, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 5, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 6, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 7, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 8, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 9, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 10, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 11, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 12, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 13, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 14, __VA_ARGS__) \
FMT_WRAP(Char, ReturnType, func, call, 15, __VA_ARGS__)
#define FMT_FOR_EACH(f,...)
Definition: format.h:3329
#define FMT_GET_ARG_NAME(type, index)
Definition: format.h:3333
#define FMT_ADD_ARG_NAME(type, index)
Definition: format.h:3332
auto call(Function f, Tuple t)
Definition: field_model.hh:200

Definition at line 3359 of file format.h.

◆ FMT_VARIADIC_CTOR

#define FMT_VARIADIC_CTOR (   ctor,
  func,
  arg0_type,
  arg1_type 
)
Value:
FMT_CTOR(ctor, func, arg0_type, arg1_type, 1) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 2) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 3) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 4) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 5) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 6) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 7) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 8) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 9) \
FMT_CTOR(ctor, func, arg0_type, arg1_type, 10)
#define FMT_CTOR(ctor, func, arg0_type, arg1_type, n)
Definition: format.h:2181

Definition at line 2190 of file format.h.

◆ FMT_VARIADIC_VOID

#define FMT_VARIADIC_VOID (   func,
  arg_type 
)
Value:
inline void func(arg_type arg) { func(arg, fmt::ArgList()); } \
FMT_WRAP1(func, arg_type, 1) FMT_WRAP1(func, arg_type, 2) \
FMT_WRAP1(func, arg_type, 3) FMT_WRAP1(func, arg_type, 4) \
FMT_WRAP1(func, arg_type, 5) FMT_WRAP1(func, arg_type, 6) \
FMT_WRAP1(func, arg_type, 7) FMT_WRAP1(func, arg_type, 8) \
FMT_WRAP1(func, arg_type, 9) FMT_WRAP1(func, arg_type, 10)
#define FMT_WRAP1(func, arg_type, n)
Definition: format.h:2164
void arg(WStringRef, const internal::NamedArg< Char > &) FMT_DELETED_OR_UNDEFINED

Definition at line 2173 of file format.h.

◆ FMT_VARIADIC_W

#define FMT_VARIADIC_W (   ReturnType,
  func,
  ... 
)     FMT_VARIADIC_(wchar_t, ReturnType, func, return func, __VA_ARGS__)

Definition at line 3410 of file format.h.

◆ FMT_WRAP

#define FMT_WRAP (   Char,
  ReturnType,
  func,
  call,
  n,
  ... 
)
Value:
template <FMT_GEN(n, FMT_MAKE_TEMPLATE_ARG)> \
inline ReturnType func(FMT_FOR_EACH(FMT_ADD_ARG_NAME, __VA_ARGS__), \
fmt::internal::ArgArray<n>::Type arr; \
FMT_GEN(n, FMT_ASSIGN_##Char); \
}

Definition at line 3349 of file format.h.

◆ FMT_WRAP1

#define FMT_WRAP1 (   func,
  arg_type,
 
)
Value:
template <FMT_GEN(n, FMT_MAKE_TEMPLATE_ARG)> \
inline void func(arg_type arg1, FMT_GEN(n, FMT_MAKE_ARG)) { \
func(arg1, fmt::ArgList( \
}

Definition at line 2164 of file format.h.