Scippy

SoPlex

Sequential object-oriented simPlex

core.h File Reference
#include <cstdio>
#include <cstring>
#include <functional>
#include <iterator>
#include <memory>
#include <string>
#include <type_traits>
#include <vector>

Go to the source code of this file.

Classes

struct  type_identity< T >
 
struct  monostate
 
struct  std_string_view< T >
 
struct  int128_t
 
struct  uint128_t
 
class  basic_string_view< Char >
 
struct  is_char< T >
 
struct  is_char< char >
 
struct  is_char< wchar_t >
 
struct  is_char< detail::char8_type >
 
struct  is_char< char16_t >
 
struct  is_char< char32_t >
 
struct  compile_string
 
struct  is_compile_string< S >
 
struct  is_string< S >
 
struct  char_t_impl< S, typename >
 
struct  char_t_impl< S, enable_if_t< is_string< S >::value > >
 
struct  error_handler
 
class  basic_format_parse_context< Char, ErrorHandler >
 
class  basic_format_arg< Context >
 
class  basic_format_args< Context >
 
class  dynamic_format_arg_store< Context >
 
struct  formatter< T, Char, Enable >
 
struct  is_contiguous< T >
 
struct  is_contiguous< std::basic_string< Char > >
 
class  buffer< T >
 
struct  buffer_traits
 
class  fixed_buffer_traits
 
class  iterator_buffer< OutputIt, T, Traits >
 
class  iterator_buffer< T *, T >
 
class  iterator_buffer< std::back_insert_iterator< Container >, enable_if_t< is_contiguous< Container >::value, typename Container::value_type > >
 
class  counting_buffer< T >
 
class  buffer_appender< T >
 
struct  fallback_formatter< T, Char, Enable >
 
struct  view
 
struct  named_arg< Char, T >
 
struct  named_arg_info< Char >
 
struct  arg_data< T, Char, NUM_ARGS, NUM_NAMED_ARGS >
 
struct  arg_data< T, Char, NUM_ARGS, 0 >
 
struct  is_named_arg< T >
 
struct  is_named_arg< named_arg< Char, T > >
 
struct  type_constant< T, Char >
 
struct  string_value< Char >
 
struct  named_arg_value< Char >
 
struct  custom_value< Context >
 
class  value< Context >
 
struct  unformattable
 
struct  arg_mapper< Context >
 
class  basic_format_arg< Context >
 
class  basic_format_arg< Context >::handle
 
struct  formattable< T >
 
struct  void_t_impl< Ts >
 
struct  is_output_iterator< It, T, Enable >
 
struct  is_output_iterator< It, T, void_t< typename std::iterator_traits< It >::iterator_category, decltype(*std::declval< It >()=std::declval< T >())> >
 
struct  is_back_insert_iterator< OutputIt >
 
struct  is_back_insert_iterator< std::back_insert_iterator< Container > >
 
struct  is_contiguous_back_insert_iterator< OutputIt >
 
struct  is_contiguous_back_insert_iterator< std::back_insert_iterator< Container > >
 
struct  is_contiguous_back_insert_iterator< buffer_appender< Char > >
 
class  locale_ref
 
struct  is_reference_wrapper< T >
 
struct  is_reference_wrapper< std::reference_wrapper< T > >
 
class  dynamic_arg_list
 
struct  dynamic_arg_list::node< typename >
 
struct  dynamic_arg_list::typed_node< T >
 
class  basic_format_context< OutputIt, Char >
 
class  format_arg_store< Context, Args >
 
class  dynamic_format_arg_store< Context >
 
struct  dynamic_format_arg_store< Context >::need_copy< T >
 
class  basic_format_args< Context >
 
struct  format_args
 
struct  wformat_args
 
struct  format_to_n_result< OutputIt >
 

Namespaces

 detail
 

Macros

#define FMT_VERSION   70103
 
#define FMT_CLANG_VERSION   0
 
#define FMT_GCC_VERSION   0
 
#define FMT_ICC_VERSION   0
 
#define FMT_HAS_GXX_CXX11   0
 
#define FMT_NVCC   0
 
#define FMT_MSC_VER   0
 
#define FMT_SUPPRESS_MSC_WARNING(n)
 
#define FMT_HAS_FEATURE(x)   0
 
#define FMT_HAS_INCLUDE(x)   0
 
#define FMT_HAS_CPP_ATTRIBUTE(x)   0
 
#define FMT_HAS_CPP14_ATTRIBUTE(attribute)   (__cplusplus >= 201402L && FMT_HAS_CPP_ATTRIBUTE(attribute))
 
#define FMT_HAS_CPP17_ATTRIBUTE(attribute)   (__cplusplus >= 201703L && FMT_HAS_CPP_ATTRIBUTE(attribute))
 
#define FMT_USE_CONSTEXPR
 
#define FMT_CONSTEXPR   inline
 
#define FMT_CONSTEXPR_DECL
 
#define FMT_OVERRIDE
 
#define FMT_EXCEPTIONS   1
 
#define FMT_USE_NOEXCEPT   0
 
#define FMT_DETECTED_NOEXCEPT   throw()
 
#define FMT_HAS_CXX11_NOEXCEPT   0
 
#define FMT_NOEXCEPT   FMT_DETECTED_NOEXCEPT
 
#define FMT_NORETURN
 
#define FMT_DEPRECATED   /* deprecated */
 
using FMT_DEPRECATED_ALIAS   FMT_DEPRECATED
 
#define FMT_INLINE   inline
 
#define FMT_USE_INLINE_NAMESPACES   0
 
#define FMT_INLINE_NAMESPACE   namespace
 
#define FMT_END_NAMESPACE
 
#define FMT_BEGIN_NAMESPACE
 
#define FMT_CLASS_API
 
#define FMT_API
 
#define FMT_EXTERN_TEMPLATE_API
 
#define FMT_INSTANTIATION_DEF_API   FMT_API
 
#define FMT_EXTERN   extern
 
#define FMT_UNICODE   !FMT_MSC_VER
 
#define FMT_ENABLE_IF(...)   enable_if_t<(__VA_ARGS__), int> = 0
 
#define FMT_ASSERT(condition, message)
 
#define FMT_USE_INT128   0
 
#define FMT_TYPE_CONSTANT(Type, constant)
 
#define FMT_BUFFER_CONTEXT(Char)   basic_format_context<detail::buffer_appender<Char>, Char>
 

Typedefs

template<bool B, class T = void>
using enable_if_t = typename std::enable_if< B, T >::type
 
template<bool B, class T , class F >
using conditional_t = typename std::conditional< B, T, F >::type
 
template<bool B>
using bool_constant = std::integral_constant< bool, B >
 
template<typename T >
using remove_reference_t = typename std::remove_reference< T >::type
 
template<typename T >
using remove_const_t = typename std::remove_const< T >::type
 
template<typename T >
using remove_cvref_t = typename std::remove_cv< remove_reference_t< T > >::type
 
template<typename T >
using type_identity_t = typename type_identity< T >::type
 
using string_view = basic_string_view< char >
 
using wstring_view = basic_string_view< wchar_t >
 
template<typename S >
using char_t = typename detail::char_t_impl< S >::type
 
using format_parse_context = basic_format_parse_context< char >
 
using wformat_parse_context = basic_format_parse_context< wchar_t >
 
template<typename T , typename Context >
using has_formatter = std::is_constructible< typename Context::template formatter_type< T > >
 
template<typename T , typename Context >
using has_fallback_formatter = std::is_constructible< fallback_formatter< T, typename Context::char_type > >
 
using long_type = conditional_t< long_short, int, long long >
 
using ulong_type = conditional_t< long_short, unsigned, unsigned long long >
 
template<typename T , typename Context >
using mapped_type_constant = type_constant< decltype(arg_mapper< Context >().map(std::declval< const T & >())), typename Context::char_type >
 
template<typename... Ts>
using void_t = typename detail::void_t_impl< Ts... >::type
 
template<typename Char >
using buffer_context = basic_format_context< detail::buffer_appender< Char >, Char >
 
using format_context = buffer_context< char >
 
using wformat_context = buffer_context< wchar_t >
 

Enumerations

enum  char8_type : unsigned char
 
enum  type {
  none_type, int_type, uint_type, long_long_type,
  ulong_long_type, int128_type, uint128_type, bool_type,
  char_type, last_integer_type = char_type, float_type, double_type,
  long_double_type, last_numeric_type = long_double_type, cstring_type, string_type,
  pointer_type, custom_type
}
 
enum  { long_short = sizeof(long) == sizeof(int) }
 
enum  { packed_arg_bits = 4 }
 
enum  { max_packed_args = 62 / packed_arg_bits }
 
enum  : unsigned long long { is_unpacked_bit = 1ULL << 63 }
 
enum  : unsigned long long { has_named_args_bit = 1ULL << 62 }
 

Functions

template<typename T >
constexpr T const_check (T value)
 
FMT_NORETURN FMT_API void assert_fail (const char *file, int line, const char *message)
 
template<typename Int >
FMT_CONSTEXPR std::make_unsigned< Int >::type to_unsigned (Int value)
 
 FMT_SUPPRESS_MSC_WARNING (4566) const expr unsigned char micro[]
 
template<typename Char >
constexpr bool is_unicode ()
 
template<typename Char , FMT_ENABLE_IF(is_char< Char >::value) >
basic_string_view< Char > to_string_view (const Char *s)
 
template<typename Char , typename Traits , typename Alloc >
basic_string_view< Char > to_string_view (const std::basic_string< Char, Traits, Alloc > &s)
 
template<typename Char >
basic_string_view< Char > to_string_view (basic_string_view< Char > s)
 
template<typename Char , FMT_ENABLE_IF(!std::is_empty< detail::std_string_view< Char >>::value) >
basic_string_view< Char > to_string_view (detail::std_string_view< Char > s)
 
template<typename S , FMT_ENABLE_IF(is_compile_string< S >::value) >
constexpr basic_string_view< typename S::char_type > to_string_view (const S &s)
 
void to_string_view (...)
 
template<typename... , typename S , FMT_ENABLE_IF(!is_compile_string< S >::value) >
FMT_INLINE void check_format_string (const S &)
 
template<typename... , typename S , FMT_ENABLE_IF(is_compile_string< S >::value) >
void check_format_string (S)
 
template<typename Container >
Container & get_container (std::back_insert_iterator< Container > it)
 
template<typename T , typename OutputIt >
iterator_buffer< OutputIt, T > get_buffer (OutputIt)
 
template<typename T >
buffer< T > & get_buffer (buffer_appender< T >)
 
template<typename OutputIt >
OutputIt get_buffer_init (OutputIt out)
 
template<typename T >
buffer< T > & get_buffer_init (buffer_appender< T > out)
 
template<typename Buffer >
auto get_iterator (Buffer &buf) -> decltype(buf.out())
 
template<typename T >
buffer_appender< T > get_iterator (buffer< T > &buf)
 
template<typename Char >
void init_named_args (named_arg_info< Char > *, int, int)
 
template<typename Char , typename T , typename... Tail>
void init_named_args (named_arg_info< Char > *named_args, int arg_count, int named_arg_count, const T &, const Tail &... args)
 
template<typename Char , typename T , typename... Tail>
void init_named_args (named_arg_info< Char > *named_args, int arg_count, int named_arg_count, const named_arg< Char, T > &arg, const Tail &... args)
 
template<typename... Args>
FMT_INLINE void init_named_args (std::nullptr_t, int, int, const Args &...)
 
template<bool B = false>
constexpr size_t count ()
 
template<bool B1, bool B2, bool... Tail>
constexpr size_t count ()
 
template<typename... Args>
constexpr size_t count_named_args ()
 
 FMT_TYPE_CONSTANT (int, int_type)
 
 FMT_TYPE_CONSTANT (unsigned, uint_type)
 
 FMT_TYPE_CONSTANT (long long, long_long_type)
 
 FMT_TYPE_CONSTANT (unsigned long long, ulong_long_type)
 
 FMT_TYPE_CONSTANT (int128_t, int128_type)
 
 FMT_TYPE_CONSTANT (uint128_t, uint128_type)
 
 FMT_TYPE_CONSTANT (bool, bool_type)
 
 FMT_TYPE_CONSTANT (Char, char_type)
 
 FMT_TYPE_CONSTANT (float, float_type)
 
 FMT_TYPE_CONSTANT (double, double_type)
 
 FMT_TYPE_CONSTANT (long double, long_double_type)
 
 FMT_TYPE_CONSTANT (const Char *, cstring_type)
 
 FMT_TYPE_CONSTANT (basic_string_view< Char >, string_type)
 
 FMT_TYPE_CONSTANT (const void *, pointer_type)
 
constexpr bool is_integral_type (type t)
 
constexpr bool is_arithmetic_type (type t)
 
template<typename Context , typename T >
FMT_CONSTEXPR basic_format_arg< Context > make_arg (const T &value)
 
template<typename Visitor , typename Context >
FMT_CONSTEXPR_DECL FMT_INLINE auto visit_format_arg (Visitor &&vis, const basic_format_arg< Context > &arg) -> decltype(vis(0))
 
template<typename >
constexpr unsigned long long encode_types ()
 
template<typename Context , typename Arg , typename... Args>
constexpr unsigned long long encode_types ()
 
template<typename T >
int check (unformattable)
 
template<typename T , typename U >
const U & check (const U &val)
 
template<bool IS_PACKED, typename Context , type , typename T , FMT_ENABLE_IF(IS_PACKED) >
value< Context > make_arg (const T &val)
 
template<bool IS_PACKED, typename Context , type , typename T , FMT_ENABLE_IF(!IS_PACKED) >
basic_format_arg< Context > make_arg (const T &value)
 
template<typename T >
const T & unwrap (const T &v)
 
template<typename T >
const T & unwrap (const std::reference_wrapper< T > &v)
 
template<typename Context = format_context, typename... Args>
format_arg_store< Context, Args... > make_format_args (const Args &... args)
 
template<typename... Args, typename S , typename Char = char_t<S>>
auto make_args_checked (const S &format_str, const remove_reference_t< Args > &... args) -> format_arg_store< buffer_context< Char >, remove_reference_t< Args >... >
 
template<typename Char , typename T >
detail::named_arg< Char, T > arg (const Char *name, const T &arg)
 
template<typename Char , FMT_ENABLE_IF(!std::is_same< Char, char >::value) >
std::basic_string< Char > vformat (basic_string_view< Char > format_str, basic_format_args< buffer_context< type_identity_t< Char >>> args)
 
FMT_API std::string vformat (string_view format_str, format_args args)
 
template<typename Char >
void vformat_to (buffer< Char > &buf, basic_string_view< Char > format_str, basic_format_args< FMT_BUFFER_CONTEXT(type_identity_t< Char >)> args, detail::locale_ref loc={})
 
template<typename Char , typename Args , FMT_ENABLE_IF(!std::is_same< Char, char >::value) >
void vprint_mojibake (std::FILE *, basic_string_view< Char >, const Args &)
 
FMT_API void vprint_mojibake (std::FILE *, string_view, format_args)
 
template<typename OutputIt , typename S , typename Char = char_t<S>, bool enable = detail::is_output_iterator<OutputIt, Char>::value>
auto vformat_to (OutputIt out, const S &format_str, basic_format_args< buffer_context< type_identity_t< Char >>> args) -> typename std::enable_if< enable, OutputIt >::type
 
template<typename OutputIt , typename S , typename... Args, bool enable = detail::is_output_iterator<OutputIt, char_t<S>>::value>
auto format_to (OutputIt out, const S &format_str, Args &&... args) -> typename std::enable_if< enable, OutputIt >::type
 
template<typename OutputIt , typename Char , typename... Args, FMT_ENABLE_IF(detail::is_output_iterator< OutputIt, Char >::value) >
format_to_n_result< OutputIt > vformat_to_n (OutputIt out, size_t n, basic_string_view< Char > format_str, basic_format_args< buffer_context< type_identity_t< Char >>> args)
 
template<typename OutputIt , typename S , typename... Args, bool enable = detail::is_output_iterator<OutputIt, char_t<S>>::value>
auto format_to_n (OutputIt out, size_t n, const S &format_str, const Args &... args) -> typename std::enable_if< enable, format_to_n_result< OutputIt >>::type
 
template<typename... Args>
size_t formatted_size (string_view format_str, Args &&... args)
 
template<typename S , typename Char = char_t<S>>
FMT_INLINE std::basic_string< Char > vformat (const S &format_str, basic_format_args< buffer_context< type_identity_t< Char >>> args)
 
template<typename S , typename... Args, typename Char = char_t<S>>
FMT_INLINE std::basic_string< Char > format (const S &format_str, Args &&... args)
 
FMT_API void vprint (string_view, format_args)
 
FMT_API void vprint (std::FILE *, string_view, format_args)
 
template<typename S , typename... Args, typename Char = char_t<S>>
void print (std::FILE *f, const S &format_str, Args &&... args)
 
template<typename S , typename... Args, typename Char = char_t<S>>
void print (const S &format_str, Args &&... args)
 

Macro Definition Documentation

◆ FMT_API

◆ FMT_ASSERT

#define FMT_ASSERT (   condition,
  message 
)
Value:
((condition) /* void() fails with -Winvalid-constexpr on clang 4.0.1 */ \
? (void)0 \
: ::fmt::detail::assert_fail(__FILE__, __LINE__, (message)))
FMT_NORETURN FMT_API void assert_fail(const char *file, int line, const char *message)
Definition: format-inl.h:38

Definition at line 292 of file core.h.

Referenced by cache_accessor< float >::compute_mul_parity(), cache_accessor< double >::compute_mul_parity(), detail::dragonbox::divisible_by_power_of_2(), detail::dragonbox::divisible_by_power_of_5(), bigint::divmod_assign(), detail::dragonbox::floor_log10_pow2(), detail::dragonbox::floor_log10_pow2_minus_log10_4_over_3(), detail::dragonbox::floor_log2_pow10(), detail::format_decimal(), detail::format_float(), text_style::get_background(), cache_accessor< float >::get_cached_power(), cache_accessor< double >::get_cached_power(), text_style::get_emphasis(), text_style::get_foreground(), detail::get_round_direction(), detail::grisu_gen_digits(), fixed_handler::on_digit(), arg_formatter_base< OutputIt, Char >::operator()(), bigint::operator*=(), basic_memory_buffer< wchar_t >::operator=(), formatter< T, Char, enable_if_t< detail::type_constant< T, Char >::value !=detail::type::custom_type > >::parse(), detail::parse_align(), detail::parse_arg_id(), detail::parse_nonnegative_int(), detail::parse_width(), dynamic_format_arg_store< Context >::reserve(), detail::safe_strerror(), detail::dragonbox::small_division_by_pow10(), detail::snprintf_float(), bigint::subtract_aligned(), detail::to_nonnegative_int(), detail::to_unsigned(), detail::write(), and detail::write_exponent().

◆ FMT_BEGIN_NAMESPACE

#define FMT_BEGIN_NAMESPACE
Value:
namespace fmt { \
FMT_INLINE_NAMESPACE v7 {

Definition at line 203 of file core.h.

Referenced by strerror_s().

◆ FMT_BUFFER_CONTEXT

#define FMT_BUFFER_CONTEXT (   Char)    basic_format_context<detail::buffer_appender<Char>, Char>

Definition at line 1543 of file core.h.

◆ FMT_CLANG_VERSION

#define FMT_CLANG_VERSION   0

Definition at line 26 of file core.h.

Referenced by detail::make_checked().

◆ FMT_CLASS_API

#define FMT_CLASS_API

Definition at line 219 of file core.h.

◆ FMT_CONSTEXPR

◆ FMT_CONSTEXPR_DECL

◆ FMT_DEPRECATED

#define FMT_DEPRECATED   /* deprecated */

Definition at line 161 of file core.h.

◆ FMT_DEPRECATED_ALIAS

Definition at line 170 of file core.h.

◆ FMT_DETECTED_NOEXCEPT

#define FMT_DETECTED_NOEXCEPT   throw()

Definition at line 131 of file core.h.

◆ FMT_ENABLE_IF

◆ FMT_END_NAMESPACE

#define FMT_END_NAMESPACE

◆ FMT_EXCEPTIONS

#define FMT_EXCEPTIONS   1

Definition at line 117 of file core.h.

◆ FMT_EXTERN

#define FMT_EXTERN   extern

Definition at line 232 of file core.h.

◆ FMT_EXTERN_TEMPLATE_API

#define FMT_EXTERN_TEMPLATE_API

Definition at line 225 of file core.h.

◆ FMT_GCC_VERSION

#define FMT_GCC_VERSION   0

Definition at line 32 of file core.h.

◆ FMT_HAS_CPP14_ATTRIBUTE

#define FMT_HAS_CPP14_ATTRIBUTE (   attribute)    (__cplusplus >= 201402L && FMT_HAS_CPP_ATTRIBUTE(attribute))

Definition at line 80 of file core.h.

◆ FMT_HAS_CPP17_ATTRIBUTE

#define FMT_HAS_CPP17_ATTRIBUTE (   attribute)    (__cplusplus >= 201703L && FMT_HAS_CPP_ATTRIBUTE(attribute))

Definition at line 83 of file core.h.

◆ FMT_HAS_CPP_ATTRIBUTE

#define FMT_HAS_CPP_ATTRIBUTE (   x)    0

Definition at line 77 of file core.h.

◆ FMT_HAS_CXX11_NOEXCEPT

#define FMT_HAS_CXX11_NOEXCEPT   0

Definition at line 132 of file core.h.

◆ FMT_HAS_FEATURE

#define FMT_HAS_FEATURE (   x)    0

Definition at line 64 of file core.h.

◆ FMT_HAS_GXX_CXX11

#define FMT_HAS_GXX_CXX11   0

Definition at line 44 of file core.h.

◆ FMT_HAS_INCLUDE

#define FMT_HAS_INCLUDE (   x)    0

Definition at line 71 of file core.h.

◆ FMT_ICC_VERSION

#define FMT_ICC_VERSION   0

Definition at line 38 of file core.h.

◆ FMT_INLINE

#define FMT_INLINE   inline

Definition at line 177 of file core.h.

Referenced by compile().

◆ FMT_INLINE_NAMESPACE

#define FMT_INLINE_NAMESPACE   namespace

Definition at line 197 of file core.h.

◆ FMT_INSTANTIATION_DEF_API

#define FMT_INSTANTIATION_DEF_API   FMT_API

Definition at line 228 of file core.h.

◆ FMT_MSC_VER

#define FMT_MSC_VER   0

Definition at line 57 of file core.h.

◆ FMT_NOEXCEPT

◆ FMT_NORETURN

#define FMT_NORETURN

Definition at line 149 of file core.h.

Referenced by detail::const_check().

◆ FMT_NVCC

#define FMT_NVCC   0

Definition at line 50 of file core.h.

◆ FMT_OVERRIDE

#define FMT_OVERRIDE

◆ FMT_SUPPRESS_MSC_WARNING

#define FMT_SUPPRESS_MSC_WARNING (   n)

Definition at line 58 of file core.h.

Referenced by detail::to_unsigned().

◆ FMT_TYPE_CONSTANT

#define FMT_TYPE_CONSTANT (   Type,
  constant 
)
Value:
template <typename Char> \
struct type_constant<Type, Char> \
: std::integral_constant<type, type::constant> {}

Definition at line 1004 of file core.h.

◆ FMT_UNICODE

#define FMT_UNICODE   !FMT_MSC_VER

Definition at line 249 of file core.h.

Referenced by detail::is_unicode().

◆ FMT_USE_CONSTEXPR

#define FMT_USE_CONSTEXPR
Value:
(FMT_HAS_FEATURE(cxx_relaxed_constexpr) || FMT_MSC_VER >= 1910 || \
(FMT_GCC_VERSION >= 600 && __cplusplus >= 201402L)) && \
#define FMT_NVCC
Definition: core.h:50
#define FMT_ICC_VERSION
Definition: core.h:38
#define FMT_MSC_VER
Definition: core.h:57
#define FMT_GCC_VERSION
Definition: core.h:32
#define FMT_HAS_FEATURE(x)
Definition: core.h:64

Definition at line 89 of file core.h.

◆ FMT_USE_INLINE_NAMESPACES

#define FMT_USE_INLINE_NAMESPACES   0

Definition at line 186 of file core.h.

◆ FMT_USE_INT128

#define FMT_USE_INT128   0

Definition at line 316 of file core.h.

◆ FMT_USE_NOEXCEPT

#define FMT_USE_NOEXCEPT   0

Definition at line 123 of file core.h.

◆ FMT_VERSION

#define FMT_VERSION   70103

Definition at line 21 of file core.h.

Typedef Documentation

◆ bool_constant

using bool_constant = std::integral_constant<bool, B>

Definition at line 262 of file core.h.

◆ buffer_context

Definition at line 1538 of file core.h.

◆ char_t

using char_t = typename detail::char_t_impl<S>::type

String's character type.

Definition at line 540 of file core.h.

◆ conditional_t

using conditional_t = typename std::conditional<B, T, F>::type

Definition at line 261 of file core.h.

◆ enable_if_t

using enable_if_t = typename std::enable_if<B, T>::type

Definition at line 259 of file core.h.

◆ format_context

Definition at line 1539 of file core.h.

◆ format_parse_context

Definition at line 621 of file core.h.

◆ has_formatter

using has_formatter = std::is_constructible<typename Context::template formatter_type<T> >

Definition at line 639 of file core.h.

◆ remove_const_t

using remove_const_t = typename std::remove_const<T>::type

Definition at line 266 of file core.h.

◆ remove_cvref_t

using remove_cvref_t = typename std::remove_cv<remove_reference_t<T> >::type

Definition at line 268 of file core.h.

◆ remove_reference_t

using remove_reference_t = typename std::remove_reference<T>::type

Definition at line 264 of file core.h.

◆ string_view

Definition at line 440 of file core.h.

◆ type_identity_t

using type_identity_t = typename type_identity<T>::type

Definition at line 270 of file core.h.

◆ wformat_context

using wformat_context = buffer_context<wchar_t>

Definition at line 1540 of file core.h.

◆ wformat_parse_context

Definition at line 622 of file core.h.

◆ wstring_view

using wstring_view = basic_string_view<wchar_t>

Definition at line 441 of file core.h.

Function Documentation

◆ arg()

detail::named_arg<Char, T> arg ( const Char *  name,
const T &  arg 
)

◆ format()

FMT_INLINE std::basic_string<Char> format ( const S &  format_str,
Args &&...  args 
)

Formats arguments and returns the result as a string.

Example**::

#include <fmt/core.h> std::string message = fmt::format("The answer is {}", 42);

Definition at line 2074 of file core.h.

References FMT_API, make_args_checked(), to_string_view(), detail::vformat(), and vprint().

◆ format_to()

auto format_to ( OutputIt  out,
const S &  format_str,
Args &&...  args 
) -> typename std::enable_if<enable, OutputIt>::type

Formats arguments, writes the result to the output iterator out and returns the iterator past the end of the output range.

Example**::

std::vector<char> out; fmt::format_to(std::back_inserter(out), "{}", 42);

Definition at line 2002 of file core.h.

References make_args_checked(), to_string_view(), and vformat_to().

◆ format_to_n()

auto format_to_n ( OutputIt  out,
size_t  n,
const S &  format_str,
const Args &...  args 
) -> typename std::enable_if<enable, format_to_n_result<OutputIt>>::type

Formats arguments, writes up to n characters of the result to the output iterator out and returns the total output size and the iterator past the end of the output range.

Definition at line 2035 of file core.h.

References make_args_checked(), to_string_view(), and vformat_to_n().

◆ formatted_size()

size_t formatted_size ( string_view  format_str,
Args &&...  args 
)

Returns the number of characters in the output of format(format_str, args...).

Definition at line 2047 of file core.h.

References counting_buffer< T >::count(), make_args_checked(), and detail::vformat_to().

◆ make_args_checked()

auto make_args_checked ( const S &  format_str,
const remove_reference_t< Args > &...  args 
) -> format_arg_store<buffer_context<Char>, remove_reference_t<Args>...>

Constructs a ~fmtformat_arg_store object that contains references to arguments and can be implicitly converted to ~fmtformat_args. If format_str is a compile-time string then make_args_checked checks its validity at compile time.

Definition at line 1617 of file core.h.

References detail::check_format_string(), and detail::count().

Referenced by format(), format_to(), format_to_n(), formatted_size(), and print().

◆ make_format_args()

format_arg_store<Context, Args...> make_format_args ( const Args &...  args)

Constructs a ~fmtformat_arg_store object that contains references to arguments and can be implicitly converted to ~fmtformat_args. Context can be omitted in which case it defaults to ~fmt::context. See ~fmtarg for lifetime considerations.

Definition at line 1603 of file core.h.

Referenced by error_code::get(), buffered_file::print(), and system_error::system_error().

◆ print() [1/2]

void print ( std::FILE *  f,
const S &  format_str,
Args &&...  args 
)

Formats args according to specifications in format_str and writes the output to the file f. Strings are assumed to be Unicode-encoded unless the FMT_UNICODE macro is set to 0.

Example**::

fmt::print(stderr, "Don't {}!", "panic");

Definition at line 2094 of file core.h.

References make_args_checked(), to_string_view(), vprint(), and detail::vprint_mojibake().

◆ print() [2/2]

void print ( const S &  format_str,
Args &&...  args 
)

Formats args according to specifications in format_str and writes the output to stdout. Strings are assumed to be Unicode-encoded unless the FMT_UNICODE macro is set to 0.

Example**::

fmt::print("Elapsed time: {0:.2f} seconds", 1.23);

Definition at line 2113 of file core.h.

References FMT_END_NAMESPACE, make_args_checked(), to_string_view(), vprint(), and detail::vprint_mojibake().

◆ to_string_view() [1/5]

basic_string_view<Char> to_string_view ( const Char *  s)

Returns a string view of s. In order to add custom string type support to {fmt} provide an overload of to_string_view for it in the same namespace as the type for the argument-dependent lookup to work.

Example**::

namespace my_ns { inline string_view to_string_view(const my_string& s) { return {s.data(), s.length()}; } } std::string message = fmt::format(my_string("The answer is {}"), 42);

Definition at line 468 of file core.h.

Referenced by format(), format_to(), format_to_n(), arg_mapper< Context >::map(), print(), to_string_view(), vformat(), vformat_to(), and vprint().

◆ to_string_view() [2/5]

basic_string_view<Char> to_string_view ( const std::basic_string< Char, Traits, Alloc > &  s)

Definition at line 473 of file core.h.

◆ to_string_view() [3/5]

basic_string_view<Char> to_string_view ( basic_string_view< Char >  s)

Definition at line 479 of file core.h.

References FMT_ENABLE_IF.

◆ to_string_view() [4/5]

basic_string_view<Char> to_string_view ( detail::std_string_view< Char >  s)

Definition at line 485 of file core.h.

◆ to_string_view() [5/5]

constexpr basic_string_view<typename S::char_type> to_string_view ( const S &  s)

Definition at line 497 of file core.h.

References to_string_view().

◆ vformat()

FMT_INLINE std::basic_string<Char> vformat ( const S &  format_str,
basic_format_args< buffer_context< type_identity_t< Char >>>  args 
)

Definition at line 2055 of file core.h.

References to_string_view(), and detail::vformat().

◆ vformat_to()

auto vformat_to ( OutputIt  out,
const S &  format_str,
basic_format_args< buffer_context< type_identity_t< Char >>>  args 
) -> typename std::enable_if<enable, OutputIt>::type

Formats a string and writes the output to out.

Definition at line 1980 of file core.h.

References detail::get_buffer_init(), detail::get_iterator(), to_string_view(), and detail::vformat_to().

Referenced by format_to().

◆ vformat_to_n()

format_to_n_result<OutputIt> vformat_to_n ( OutputIt  out,
size_t  n,
basic_string_view< Char >  format_str,
basic_format_args< buffer_context< type_identity_t< Char >>>  args 
)

◆ visit_format_arg()

◆ vprint() [1/2]

FMT_API void vprint ( string_view  ,
format_args   
)

Definition at line 2795 of file format-inl.h.

References FMT_END_NAMESPACE, and vprint().

Referenced by format(), and print().

◆ vprint() [2/2]