SoPlex Documentation
Loading...
Searching...
No Matches
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 >
 
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

namespace  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
 
#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
 
template<typename T , typename Context >
using has_fallback_formatter
 
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
 
template<typename... Ts>
using void_t = typename detail::void_t_impl<Ts...>::type
 
template<typename Char >
using buffer_context
 
using format_context = buffer_context<char>
 
using wformat_context = buffer_context<wchar_t>
 

Enumerations

enum  char8_type : unsigned char
 
enum class  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

#define FMT_API

Definition at line 222 of file core.h.

◆ 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)))

Definition at line 292 of file core.h.

Referenced by cache_accessor< double >::compute_mul_parity(), cache_accessor< float >::compute_mul_parity(), detail::dragonbox::divisible_by_power_of_2(), detail::dragonbox::divisible_by_power_of_2(), detail::dragonbox::divisible_by_power_of_5(), 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< double >::get_cached_power(), cache_accessor< float >::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, ErrorHandler >::operator()(), arg_formatter_base< OutputIt, Char, ErrorHandler >::operator()(), bigint::operator*=(), basic_memory_buffer< T, SIZE, Allocator >::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 { \
#define FMT_INLINE_NAMESPACE
Definition core.h:197

Definition at line 203 of file core.h.

◆ 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.

◆ FMT_CLASS_API

#define FMT_CLASS_API

Definition at line 219 of file core.h.

◆ FMT_CONSTEXPR

#define FMT_CONSTEXPR   inline

Definition at line 98 of file core.h.

Referenced by detail::compile_to_parts(), and detail::parse_format_string().

◆ FMT_CONSTEXPR_DECL

#define 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

#define FMT_ENABLE_IF ( ...)    enable_if_t<(__VA_ARGS__), int> = 0

Definition at line 277 of file core.h.

◆ FMT_END_NAMESPACE

#define FMT_END_NAMESPACE
Value:
} \
using namespace v7; \
}

Definition at line 198 of file core.h.

◆ 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.

◆ 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

#define FMT_NOEXCEPT

Definition at line 139 of file core.h.

◆ FMT_NORETURN

#define FMT_NORETURN

Definition at line 149 of file core.h.

◆ FMT_NVCC

#define FMT_NVCC   0

Definition at line 50 of file core.h.

◆ FMT_OVERRIDE

#define FMT_OVERRIDE

Definition at line 107 of file core.h.

◆ FMT_SUPPRESS_MSC_WARNING

#define FMT_SUPPRESS_MSC_WARNING ( n)

Definition at line 58 of file core.h.

◆ 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_ICC_VERSION
Definition core.h:38
#define FMT_MSC_VER
Definition core.h:57
#define FMT_GCC_VERSION
Definition core.h:32
#define FMT_NVCC
Definition core.h:50
#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

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

Definition at line 262 of file core.h.

◆ buffer_context

template<typename Char >
using buffer_context
Initial value:

Definition at line 1537 of file core.h.

◆ char_t

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

String's character type.

Definition at line 540 of file core.h.

◆ conditional_t

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

Definition at line 261 of file core.h.

◆ enable_if_t

template<bool B, class T = void>
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

template<typename T , typename Context >
using has_formatter
Initial value:
std::is_constructible<typename Context::template formatter_type<T>>

Definition at line 638 of file core.h.

◆ remove_const_t

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

Definition at line 266 of file core.h.

◆ remove_cvref_t

template<typename 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

template<typename 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

template<typename 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()

◆ format()

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

\rst Formats arguments and returns the result as a string.

Example**::

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

Definition at line 2074 of file core.h.

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

Referenced by formatter< tuple_arg_join< Char, T... >, Char >::format().

◆ format_to()

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

\rst 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); \endrst

Definition at line 2002 of file core.h.

References to_string_view(), and vformat_to().

Referenced by formatter< detail::bigint >::format(), and formatter< T, Char, enable_if_t< fmt::is_range< T, Char >::value &&(has_formatter< detail::value_type< T >, format_context >::value||detail::has_fallback_formatter< detail::value_type< T >, format_context >::value) > >::format().

◆ format_to_n()

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

\rst 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. \endrst

Definition at line 2035 of file core.h.

References to_string_view(), and vformat_to_n().

◆ formatted_size()

template<typename... Args>
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(), and detail::vformat_to().

◆ make_args_checked()

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>...>

\rst 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. \endrst

Definition at line 1617 of file core.h.

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

◆ make_format_args()

template<typename Context = format_context, typename... Args>
format_arg_store< Context, Args... > make_format_args ( const Args &... args)

\rst 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 ~fmtcontext. See ~fmtarg for lifetime considerations. \endrst

Definition at line 1603 of file core.h.

Referenced by format(), format_to(), fprintf(), fprintf(), buffered_file::print(), printf(), sprintf(), and system_error::system_error().

◆ print() [1/2]

template<typename S , typename... Args, typename Char = char_t<S>>
void print ( const S & format_str,
Args &&... args )

\rst 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); \endrst

Definition at line 2113 of file core.h.

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

◆ print() [2/2]

template<typename S , typename... Args, typename Char = char_t<S>>
void print ( std::FILE * f,
const S & format_str,
Args &&... args )

\rst 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"); \endrst

Definition at line 2094 of file core.h.

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

◆ to_string_view() [1/5]

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

Definition at line 479 of file core.h.

◆ to_string_view() [2/5]

template<typename Char , FMT_ENABLE_IF(is_char< Char >::value) >
basic_string_view< Char > to_string_view ( const Char * s)

\rst 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); \endrst

Definition at line 468 of file core.h.

Referenced by detail::check_format_string(), format(), format(), format(), format_to(), format_to(), format_to(), format_to(), format_to_n(), fprintf(), fprintf(), print(), print(), print(), printf(), sprintf(), vformat(), vformat(), vformat(), vformat_to(), vformat_to(), vformat_to(), vfprintf(), vfprintf(), vprint(), vprintf(), and vsprintf().

◆ to_string_view() [3/5]

template<typename S , FMT_ENABLE_IF(is_compile_string< S >::value) >
basic_string_view< typename S::char_type > to_string_view ( const S & s)
constexpr

Definition at line 497 of file core.h.

◆ to_string_view() [4/5]

template<typename Char , typename Traits , typename Alloc >
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() [5/5]

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)

Definition at line 485 of file core.h.

◆ vformat()

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 )

Definition at line 2055 of file core.h.

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

◆ vformat_to()

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

Formats a string and writes the output to out.

Definition at line 1980 of file core.h.

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

Referenced by format_to().

◆ vformat_to_n()

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 )

◆ visit_format_arg()

◆ vprint() [1/2]

◆ vprint() [2/2]

FMT_API void vprint ( string_view format_str,
format_args args )

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

References vprint().

Referenced by print(), and print().