HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
format.h File Reference
#include <cmath>
#include <cstdint>
#include <cstring>
#include <initializer_list>
#include <limits>
#include <memory>
#include <stdexcept>
#include <system_error>
#include "core.h"
+ Include dependency graph for format.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  disjunction<>
 
struct  disjunction< P >
 
struct  disjunction< P1, Pn...>
 
struct  conjunction<>
 
struct  conjunction< P >
 
struct  conjunction< P1, Pn...>
 
struct  detail::string_literal< CharT, C >
 
class  detail::formatbuf< Streambuf >
 
class  detail::uint128_fallback
 
struct  detail::is_integral< T >
 
struct  detail::is_integral< int128_opt >
 
struct  detail::is_integral< uint128_t >
 
class  basic_memory_buffer< T, SIZE, Allocator >
 
struct  is_contiguous< basic_memory_buffer< T, SIZE, Allocator > >
 
class  format_error
 
class  loc_value
 
class  format_facet< Locale >
 
struct  thousands_sep_result< Char >
 
struct  format_decimal_result< Iterator >
 
class  utf8_to_utf16
 
class  unicode_to_utf8< WChar, Buffer >
 
struct  dragonbox::float_info< T, Enable >
 
struct  dragonbox::float_info< float >
 
struct  dragonbox::float_info< double >
 
struct  dragonbox::float_info< T, enable_if_t< std::numeric_limits< T >::digits==64||std::numeric_limits< T >::digits==113||is_float128< T >::value > >
 
struct  dragonbox::float_info< T, enable_if_t< is_double_double< T >::value > >
 
struct  dragonbox::decimal_fp< T >
 
struct  basic_fp< F >
 
struct  basic_data< T >
 
struct  data
 
struct  find_escape_result< Char >
 
struct  write_int_data< Char >
 
class  digit_grouping< Char >
 
struct  write_int_arg< UInt >
 
struct  loc_writer< Char >
 
class  counting_iterator
 
struct  counting_iterator::value_type
 
struct  float_specs
 
struct  big_decimal_fp
 
class  fallback_digit_grouping< Char >
 
struct  has_isfinite< T, Enable >
 
struct  has_isfinite< T, enable_if_t< sizeof(std::isfinite(T()))!=0 > >
 
struct  gen_digits_handler
 
class  bigint
 
struct  default_arg_formatter< Char >
 
struct  arg_formatter< Char >
 
struct  custom_formatter< Char >
 
class  width_checker< ErrorHandler >
 
class  precision_checker< ErrorHandler >
 
class  format_int
 
struct  formatter< T, Char, enable_if_t< detail::has_format_as< T >::value > >
 
struct  formatter< void *, Char >
 
struct  formatter< Char[N], Char >
 
class  bytes
 
struct  formatter< bytes >
 
struct  group_digits_view< T >
 
struct  formatter< group_digits_view< T > >
 
struct  join_view< It, Sentinel, Char >
 
struct  formatter< join_view< It, Sentinel, Char >, Char >
 

Namespaces

 detail
 
 detail_exported
 
 dragonbox
 
 digits
 
 enums
 

Macros

#define FMT_BEGIN_DETAIL_NAMESPACE   namespace detail {
 
#define FMT_END_DETAIL_NAMESPACE   }
 
#define FMT_FALLTHROUGH
 
#define FMT_DEPRECATED   /* deprecated */
 
#define FMT_GCC_VISIBILITY_HIDDEN
 
#define FMT_CUDA_VERSION   0
 
#define FMT_HAS_BUILTIN(x)   0
 
#define FMT_NOINLINE
 
#define FMT_THROW(x)   throw x
 
#define FMT_TRY   try
 
#define FMT_CATCH(x)   catch (x)
 
#define FMT_MAYBE_UNUSED
 
#define FMT_USE_USER_DEFINED_LITERALS   0
 
#define FMT_REDUCE_INT_INSTANTIATIONS   0
 
#define FMT_USE_FLOAT   1
 
#define FMT_USE_DOUBLE   1
 
#define FMT_USE_LONG_DOUBLE   1
 
#define FMT_USE_FLOAT128   0
 
#define FMT_USE_FULL_CACHE_DRAGONBOX   0
 
#define FMT_POWERS_OF_10(factor)
 
#define FMT_STRING_IMPL(s, base, explicit)
 
#define FMT_STRING(s)   FMT_STRING_IMPL(s, fmt::detail::compile_string, )
 
#define FMT_FUNC
 

Typedefs

using detail::uint128_t = conditional_t< FMT_USE_INT128, uint128_opt, uint128_fallback >
 
using detail::uintptr_t = uint128_t
 
template<typename T >
using detail::iterator_t = decltype(std::begin(std::declval< T & >()))
 
template<typename T >
using detail::sentinel_t = decltype(std::end(std::declval< T & >()))
 
template<typename T >
using detail::checked_ptr = T *
 
template<typename OutputIt >
using detail::reserve_iterator = remove_reference_t< decltype(reserve(std::declval< OutputIt & >(), 0))>
 
template<typename T >
using detail::is_signed = std::integral_constant< bool, std::numeric_limits< T >::is_signed||std::is_same< T, int128_opt >::value >
 
template<typename T >
using detail::is_integer = bool_constant< is_integral< T >::value &&!std::is_same< T, bool >::value &&!std::is_same< T, char >::value &&!std::is_same< T, wchar_t >::value >
 
using detail::float128 = void
 
template<typename T >
using detail::is_float128 = std::is_same< T, float128 >
 
template<typename T >
using detail::is_floating_point = bool_constant< std::is_floating_point< T >::value||is_float128< T >::value >
 
using memory_buffer = basic_memory_buffer< char >
 
template<typename T >
using uint32_or_64_or_128_t = conditional_t< num_bits< T >()<=32 &&!FMT_REDUCE_INT_INSTANTIATIONS, uint32_t, conditional_t< num_bits< T >()<=64, uint64_t, uint128_t >>
 
template<typename T >
using uint64_or_128_t = conditional_t< num_bits< T >()<=64, uint64_t, uint128_t >
 
using fp = basic_fp< unsigned long long >
 
template<typename T >
using convert_float_result = conditional_t< std::is_same< T, float >::value||std::numeric_limits< T >::digits==std::numeric_limits< double >::digits, double, T >
 
template<typename Char >
using make_unsigned_char = typename conditional_t< std::is_integral< Char >::value, std::make_unsigned< Char >, type_identity< uint32_t >>::type
 
using format_func = void(*)(detail::buffer< char > &, int, const char *)
 

Enumerations

enum  detail::char8_type : unsigned char
 
enum  { inline_buffer_size = 500 }
 
enum  float_format : unsigned char { float_format::general, float_format::exp, fixed, float_format::hex }
 
enum  round_direction { round_direction::unknown, round_direction::up, round_direction::down }
 
enum  digits::result { digits::more, digits::done, digits::error }
 
enum  dragon { predecessor_closer = 1, fixup = 2, fixed = 4, fixed }
 

Functions

FMT_CONSTEXPR void detail::abort_fuzzing_if (bool condition)
 
template<typename To , typename From , FMT_ENABLE_IF(sizeof(To)==sizeof(From)) >
FMT_CONSTEXPR20 auto detail::bit_cast (const From &from) -> To
 
auto detail::is_big_endian () -> bool
 
template<typename T >
constexpr auto detail::max_value () -> T
 
template<typename T >
constexpr auto detail::num_bits () -> int
 
template<>
constexpr auto detail::num_bits< int128_opt > () -> int
 
template<>
constexpr auto detail::num_bits< uint128_t > () -> int
 
template<typename To , typename From , FMT_ENABLE_IF(sizeof(To) > sizeof(From)) >
auto detail::bit_cast (const From &from) -> To
 
template<typename UInt >
FMT_CONSTEXPR20 auto detail::countl_zero_fallback (UInt n) -> int
 
FMT_CONSTEXPR20 auto detail::countl_zero (uint32_t n) -> int
 
FMT_CONSTEXPR20 auto detail::countl_zero (uint64_t n) -> int
 
FMT_INLINE void detail::assume (bool condition)
 
template<typename Char >
auto detail::get_data (std::basic_string< Char > &s) -> Char *
 
template<typename Container >
auto detail::get_data (Container &c) -> typename Container::value_type *
 
template<typename T >
constexpr auto detail::make_checked (T *p, size_t) -> T *
 
template<typename Container , FMT_ENABLE_IF(is_contiguous< Container >::value) >
auto detail::reserve (std::back_insert_iterator< Container > it, size_t n) -> checked_ptr< typename Container::value_type >
 
template<typename T >
auto detail::reserve (buffer_appender< T > it, size_t n) -> buffer_appender< T >
 
template<typename Iterator >
constexpr auto detail::reserve (Iterator &it, size_t) -> Iterator &
 
template<typename T , typename OutputIt >
constexpr auto detail::to_pointer (OutputIt, size_t) -> T *
 
template<typename T >
auto detail::to_pointer (buffer_appender< T > it, size_t n) -> T *
 
template<typename Container , FMT_ENABLE_IF(is_contiguous< Container >::value) >
auto detail::base_iterator (std::back_insert_iterator< Container > &it, checked_ptr< typename Container::value_type >) -> std::back_insert_iterator< Container >
 
template<typename Iterator >
constexpr auto detail::base_iterator (Iterator, Iterator it) -> Iterator
 
template<typename OutputIt , typename Size , typename T >
FMT_CONSTEXPR auto detail::fill_n (OutputIt out, Size count, const T &value) -> OutputIt
 
template<typename T , typename Size >
FMT_CONSTEXPR20 auto detail::fill_n (T *out, Size count, char value) -> T *
 
template<typename OutChar , typename InputIt , typename OutputIt >
FMT_CONSTEXPR FMT_NOINLINE auto detail::copy_str_noinline (InputIt begin, InputIt end, OutputIt out) -> OutputIt
 
FMT_CONSTEXPR auto detail::utf8_decode (const char *s, uint32_t *c, int *e) -> const char *
 
template<typename F >
FMT_CONSTEXPR void detail::for_each_codepoint (string_view s, F f)
 
template<typename Char >
auto detail::compute_width (basic_string_view< Char > s) -> size_t
 
FMT_CONSTEXPR size_t detail::compute_width (string_view s)
 
auto detail::compute_width (basic_string_view< char8_type > s) -> size_t
 
template<typename Char >
auto detail::code_point_index (basic_string_view< Char > s, size_t n) -> size_t
 
auto detail::code_point_index (string_view s, size_t n) -> size_t
 
auto detail::code_point_index (basic_string_view< char8_type > s, size_t n) -> size_t
 
FMT_FUNC bool detail::write_console (std::FILE *, string_view)
 
FMT_FUNC void detail::print (std::FILE *f, string_view text)
 
template<typename Char , size_t N>
constexpr auto detail_exported::compile_string_to_view (const Char(&s)[N]) -> basic_string_view< Char >
 
template<typename Char >
constexpr auto detail_exported::compile_string_to_view (detail::std_string_view< Char > s) -> basic_string_view< Char >
 
template<typename T , FMT_ENABLE_IF(is_signed< T >::value) >
FMT_BEGIN_DETAIL_NAMESPACE
constexpr auto 
is_negative (T value) -> bool
 
template<typename T , FMT_ENABLE_IF(!is_signed< T >::value) >
constexpr auto is_negative (T) -> bool
 
template<typename T >
FMT_CONSTEXPR auto is_supported_floating_point (T) -> bool
 
constexpr const char * digits2 (size_t value)
 
template<typename Char , typename Sign >
constexpr Char sign (Sign s)
 
template<typename T >
FMT_CONSTEXPR auto count_digits_fallback (T n) -> int
 
FMT_CONSTEXPR20 auto count_digits (uint64_t n) -> int
 
template<int BITS, typename UInt >
FMT_CONSTEXPR auto count_digits (UInt n) -> int
 
FMT_CONSTEXPR20 auto count_digits (uint32_t n) -> int
 
template<typename Int >
constexpr auto digits10 () noexcept-> int
 
template<>
constexpr auto digits10< int128_opt > () noexcept-> int
 
template<>
constexpr auto digits10< uint128_t > () noexcept-> int
 
template<typename Char >
FMT_API auto thousands_sep_impl (locale_ref loc) -> thousands_sep_result< Char >
 
template<typename Char >
auto thousands_sep (locale_ref loc) -> thousands_sep_result< Char >
 
template<>
auto thousands_sep (locale_ref loc) -> thousands_sep_result< wchar_t >
 
template<typename Char >
FMT_API auto decimal_point_impl (locale_ref loc) -> Char
 
template<typename Char >
auto decimal_point (locale_ref loc) -> Char
 
template<>
auto decimal_point (locale_ref loc) -> wchar_t
 
template<typename Char >
auto equal2 (const Char *lhs, const char *rhs) -> bool
 
auto equal2 (const char *lhs, const char *rhs) -> bool
 
template<typename Char >
FMT_CONSTEXPR20 FMT_INLINE void copy2 (Char *dst, const char *src)
 
template<typename Char , typename UInt >
FMT_CONSTEXPR20 auto format_decimal (Char *out, UInt value, int size) -> format_decimal_result< Char * >
 
template<typename Char , typename UInt , typename Iterator , FMT_ENABLE_IF(!std::is_pointer< remove_cvref_t< Iterator >>::value) >
FMT_CONSTEXPR auto format_decimal (Iterator out, UInt value, int size) -> format_decimal_result< Iterator >
 
template<unsigned BASE_BITS, typename Char , typename UInt >
FMT_CONSTEXPR auto format_uint (Char *buffer, UInt value, int num_digits, bool upper=false) -> Char *
 
template<unsigned BASE_BITS, typename Char , typename It , typename UInt >
auto format_uint (It out, UInt value, int num_digits, bool upper=false) -> It
 
uint128_fallback umul128 (uint64_t x, uint64_t y) noexcept
 
int dragonbox::floor_log10_pow2 (int e) noexcept
 
int dragonbox::floor_log2_pow10 (int e) noexcept
 
uint64_t dragonbox::umul128_upper64 (uint64_t x, uint64_t y) noexcept
 
uint128_fallback dragonbox::umul192_upper128 (uint64_t x, uint128_fallback y) noexcept
 
FMT_API uint128_fallback dragonbox::get_cached_power (int k) noexcept
 
template<typename T >
FMT_API auto dragonbox::to_decimal (T x) noexcept-> decimal_fp< T >
 
template<typename Float >
constexpr bool has_implicit_bit ()
 
template<typename Float >
constexpr int num_significand_bits ()
 
template<typename Float >
constexpr auto exponent_mask () -> typename dragonbox::float_info< Float >::carrier_uint
 
template<typename Float >
constexpr auto exponent_bias () -> int
 
template<typename Char , typename It >
FMT_CONSTEXPR auto write_exponent (int exp, It it) -> It
 
template<int SHIFT = 0, typename F >
FMT_CONSTEXPR basic_fp< F > normalize (basic_fp< F > value)
 
FMT_CONSTEXPR uint64_t multiply (uint64_t lhs, uint64_t rhs)
 
FMT_CONSTEXPR fp operator* (fp x, fp y)
 
FMT_CONSTEXPR fp get_cached_power (int min_exponent, int &pow10_exponent)
 
template<typename T >
constexpr auto convert_float (T value) -> convert_float_result< T >
 
template<typename OutputIt , typename Char >
FMT_NOINLINE FMT_CONSTEXPR auto fill (OutputIt it, size_t n, const fill_t< Char > &fill) -> OutputIt
 
template<align::type align = align::left, typename OutputIt , typename Char , typename F >
FMT_CONSTEXPR auto write_padded (OutputIt out, const format_specs< Char > &specs, size_t size, size_t width, F &&f) -> OutputIt
 
template<align::type align = align::left, typename OutputIt , typename Char , typename F >
constexpr auto write_padded (OutputIt out, const format_specs< Char > &specs, size_t size, F &&f) -> OutputIt
 
template<align::type align = align::left, typename Char , typename OutputIt >
FMT_CONSTEXPR auto write_bytes (OutputIt out, string_view bytes, const format_specs< Char > &specs) -> OutputIt
 
template<typename Char , typename OutputIt , typename UIntPtr >
auto write_ptr (OutputIt out, UIntPtr value, const format_specs< Char > *specs) -> OutputIt
 
FMT_API auto is_printable (uint32_t cp) -> bool
 
auto needs_escape (uint32_t cp) -> bool
 
template<typename Char >
auto find_escape (const Char *begin, const Char *end) -> find_escape_result< Char >
 
auto find_escape (const char *begin, const char *end) -> find_escape_result< char >
 
template<size_t width, typename Char , typename OutputIt >
auto write_codepoint (OutputIt out, char prefix, uint32_t cp) -> OutputIt
 
template<typename OutputIt , typename Char >
auto write_escaped_cp (OutputIt out, const find_escape_result< Char > &escape) -> OutputIt
 
template<typename Char , typename OutputIt >
auto write_escaped_string (OutputIt out, basic_string_view< Char > str) -> OutputIt
 
template<typename Char , typename OutputIt >
auto write_escaped_char (OutputIt out, Char v) -> OutputIt
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write_char (OutputIt out, Char value, const format_specs< Char > &specs) -> OutputIt
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write (OutputIt out, Char value, const format_specs< Char > &specs, locale_ref loc={}) -> OutputIt
 
template<typename OutputIt , typename Char , typename W >
FMT_CONSTEXPR FMT_INLINE auto write_int (OutputIt out, int num_digits, unsigned prefix, const format_specs< Char > &specs, W write_digits) -> OutputIt
 
template<typename OutputIt , typename UInt , typename Char >
auto write_int (OutputIt out, UInt value, unsigned prefix, const format_specs< Char > &specs, const digit_grouping< Char > &grouping) -> OutputIt
 
FMT_API auto write_loc (appender out, loc_value value, const format_specs<> &specs, locale_ref loc) -> bool
 
template<typename OutputIt , typename Char >
auto write_loc (OutputIt, loc_value, const format_specs< Char > &, locale_ref) -> bool
 
FMT_CONSTEXPR void prefix_append (unsigned &prefix, unsigned value)
 
template<typename T >
FMT_CONSTEXPR auto make_write_int_arg (T value, sign_t sign) -> write_int_arg< uint32_or_64_or_128_t< T >>
 
template<typename Char , typename OutputIt , typename T >
FMT_CONSTEXPR FMT_INLINE auto write_int (OutputIt out, write_int_arg< T > arg, const format_specs< Char > &specs, locale_ref) -> OutputIt
 
template<typename Char , typename OutputIt , typename T >
FMT_CONSTEXPR FMT_NOINLINE auto write_int_noinline (OutputIt out, write_int_arg< T > arg, const format_specs< Char > &specs, locale_ref loc) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_integral< T >::value &&!std::is_same< T, bool >::value &&std::is_same< OutputIt, buffer_appender< Char >>::value) >
FMT_CONSTEXPR FMT_INLINE auto write (OutputIt out, T value, const format_specs< Char > &specs, locale_ref loc) -> OutputIt
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write (OutputIt out, basic_string_view< Char > s, const format_specs< Char > &specs) -> OutputIt
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write (OutputIt out, basic_string_view< type_identity_t< Char >> s, const format_specs< Char > &specs, locale_ref) -> OutputIt
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write (OutputIt out, const Char *s, const format_specs< Char > &specs, locale_ref) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_integral< T >::value &&!std::is_same< T, bool >::value &&!std::is_same< T, Char >::value) >
FMT_CONSTEXPR auto write (OutputIt out, T value) -> OutputIt
 
template<typename ErrorHandler = error_handler, typename Char >
FMT_CONSTEXPR auto parse_float_type_spec (const format_specs< Char > &specs, ErrorHandler &&eh={}) -> float_specs
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR20 auto write_nonfinite (OutputIt out, bool isnan, format_specs< Char > specs, const float_specs &fspecs) -> OutputIt
 
constexpr auto get_significand_size (const big_decimal_fp &f) -> int
 
template<typename T >
auto get_significand_size (const dragonbox::decimal_fp< T > &f) -> int
 
template<typename Char , typename OutputIt >
constexpr auto write_significand (OutputIt out, const char *significand, int significand_size) -> OutputIt
 
template<typename Char , typename OutputIt , typename UInt >
auto write_significand (OutputIt out, UInt significand, int significand_size) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , typename Grouping >
FMT_CONSTEXPR20 auto write_significand (OutputIt out, T significand, int significand_size, int exponent, const Grouping &grouping) -> OutputIt
 
template<typename Char , typename UInt , FMT_ENABLE_IF(std::is_integral< UInt >::value) >
auto write_significand (Char *out, UInt significand, int significand_size, int integral_size, Char decimal_point) -> Char *
 
template<typename OutputIt , typename UInt , typename Char , FMT_ENABLE_IF(!std::is_pointer< remove_cvref_t< OutputIt >>::value) >
auto write_significand (OutputIt out, UInt significand, int significand_size, int integral_size, Char decimal_point) -> OutputIt
 
template<typename OutputIt , typename Char >
FMT_CONSTEXPR auto write_significand (OutputIt out, const char *significand, int significand_size, int integral_size, Char decimal_point) -> OutputIt
 
template<typename OutputIt , typename Char , typename T , typename Grouping >
FMT_CONSTEXPR20 auto write_significand (OutputIt out, T significand, int significand_size, int integral_size, Char decimal_point, const Grouping &grouping) -> OutputIt
 
template<typename OutputIt , typename DecimalFP , typename Char , typename Grouping = digit_grouping<Char>>
FMT_CONSTEXPR20 auto do_write_float (OutputIt out, const DecimalFP &f, const format_specs< Char > &specs, float_specs fspecs, locale_ref loc) -> OutputIt
 
template<typename OutputIt , typename DecimalFP , typename Char >
FMT_CONSTEXPR20 auto write_float (OutputIt out, const DecimalFP &f, const format_specs< Char > &specs, float_specs fspecs, locale_ref loc) -> OutputIt
 
template<typename T >
constexpr bool isnan (T value)
 
template<typename T , FMT_ENABLE_IF(std::is_floating_point< T >::value &&has_isfinite< T >::value) >
FMT_CONSTEXPR20 bool isfinite (T value)
 
template<typename T , FMT_ENABLE_IF(!has_isfinite< T >::value) >
FMT_CONSTEXPR bool isfinite (T value)
 
template<typename T , FMT_ENABLE_IF(is_floating_point< T >::value) >
FMT_INLINE FMT_CONSTEXPR bool signbit (T value)
 
FMT_CONSTEXPR round_direction get_round_direction (uint64_t divisor, uint64_t remainder, uint64_t error)
 
FMT_CONSTEXPR20 void adjust_precision (int &precision, int exp10)
 
FMT_INLINE FMT_CONSTEXPR20 auto grisu_gen_digits (fp value, uint64_t error, int &exp, gen_digits_handler &handler) -> digits::result
 
FMT_CONSTEXPR20 void format_dragon (basic_fp< uint128_t > value, unsigned flags, int num_digits, buffer< char > &buf, int &exp10)
 
template<typename Float , FMT_ENABLE_IF(!is_double_double< Float >::value) >
FMT_CONSTEXPR20 void format_hexfloat (Float value, int precision, float_specs specs, buffer< char > &buf)
 
template<typename Float >
FMT_CONSTEXPR20 auto format_float (Float value, int precision, float_specs specs, buffer< char > &buf) -> int
 
template<typename Char , typename OutputIt , typename T >
FMT_CONSTEXPR20 auto write_float (OutputIt out, T value, format_specs< Char > specs, locale_ref loc) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_floating_point< T >::value) >
FMT_CONSTEXPR20 auto write (OutputIt out, T value, format_specs< Char > specs, locale_ref loc={}) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_fast_float< T >::value) >
FMT_CONSTEXPR20 auto write (OutputIt out, T value) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_floating_point< T >::value &&!is_fast_float< T >::value) >
auto write (OutputIt out, T value) -> OutputIt
 
template<typename Char , typename OutputIt >
auto write (OutputIt out, monostate, format_specs< Char >={}, locale_ref={}) -> OutputIt
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write (OutputIt out, basic_string_view< Char > value) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_string< T >::value) >
constexpr auto write (OutputIt out, const T &value) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , bool check = std::is_enum<T>::value && !std::is_same<T, Char>::value && mapped_type_constant<T, basic_format_context<OutputIt, Char>>::value != type::custom_type, FMT_ENABLE_IF(check) >
FMT_CONSTEXPR auto write (OutputIt out, T value) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(std::is_same< T, bool >::value) >
FMT_CONSTEXPR auto write (OutputIt out, T value, const format_specs< Char > &specs={}, locale_ref={}) -> OutputIt
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write (OutputIt out, Char value) -> OutputIt
 
template<typename Char , typename OutputIt >
FMT_CONSTEXPR_CHAR_TRAITS auto write (OutputIt out, const Char *value) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(std::is_same< T, void >::value) >
auto write (OutputIt out, const T *value, const format_specs< Char > &specs={}, locale_ref={}) -> OutputIt
 
template<typename Char , typename OutputIt , typename T , typename Context = basic_format_context<OutputIt, Char>>
FMT_CONSTEXPR auto write (OutputIt out, const T &value) -> enable_if_t< std::is_class< T >::value &&!is_string< T >::value &&!is_floating_point< T >::value &&!std::is_same< T, Char >::value &&!std::is_same< T, remove_cvref_t< decltype(arg_mapper< Context >().map(value))>>::value, OutputIt >
 
template<template< typename > class Handler, typename FormatArg , typename ErrorHandler >
FMT_CONSTEXPR auto get_dynamic_spec (FormatArg arg, ErrorHandler eh) -> int
 
template<typename Context , typename ID >
FMT_CONSTEXPR auto get_arg (Context &ctx, ID id) -> typename Context::format_arg
 
template<template< typename > class Handler, typename Context >
FMT_CONSTEXPR void handle_dynamic_spec (int &value, arg_ref< typename Context::char_type > ref, Context &ctx)
 
template<typename Locale , typename Char >
auto vformat (const Locale &loc, basic_string_view< Char > fmt, basic_format_args< buffer_context< type_identity_t< Char >>> args) -> std::basic_string< Char >
 
FMT_API void format_error_code (buffer< char > &out, int error_code, string_view message) noexcept
 
FMT_API void report_error (format_func func, int error_code, const char *message) noexcept
 
FMT_END_DETAIL_NAMESPACE
FMT_API auto 
vsystem_error (int error_code, string_view format_str, format_args args) -> std::system_error
 
template<typename... T>
auto system_error (int error_code, format_string< T...> fmt, T &&...args) -> std::system_error
 
FMT_API void format_system_error (detail::buffer< char > &out, int error_code, const char *message) noexcept
 
FMT_API void report_system_error (int error_code, const char *message) noexcept
 
template<typename T >
auto ptr (T p) -> const void *
 
template<typename T , typename Deleter >
auto ptr (const std::unique_ptr< T, Deleter > &p) -> const void *
 
template<typename T >
auto ptr (const std::shared_ptr< T > &p) -> const void *
 
template<typename Enum >
constexpr auto underlying (Enum e) noexcept-> underlying_t< Enum >
 
template<typename Enum , FMT_ENABLE_IF(std::is_enum< Enum >::value) >
constexpr auto enums::format_as (Enum e) noexcept-> underlying_t< Enum >
 
template<typename T >
auto group_digits (T value) -> group_digits_view< T >
 
template<typename It , typename Sentinel >
auto join (It begin, Sentinel end, string_view sep) -> join_view< It, Sentinel >
 
template<typename Range >
auto join (Range &&range, string_view sep) -> join_view< detail::iterator_t< Range >, detail::sentinel_t< Range >>
 
template<typename T , FMT_ENABLE_IF(!std::is_integral< T >::value) >
auto to_string (const T &value) -> std::string
 
template<typename T , FMT_ENABLE_IF(std::is_integral< T >::value) >
FMT_NODISCARD auto to_string (T value) -> std::string
 
template<typename Char , size_t SIZE>
FMT_NODISCARD auto to_string (const basic_memory_buffer< Char, SIZE > &buf) -> std::basic_string< Char >
 
template<typename Char >
FMT_BEGIN_DETAIL_NAMESPACE void vformat_to (buffer< Char > &buf, basic_string_view< Char > fmt, typename vformat_args< Char >::type args, locale_ref loc)
 
template FMT_API void vformat_to (buffer< char > &, string_view, typename vformat_args<>::type, locale_ref)
 
template FMT_API auto thousands_sep_impl< char > (locale_ref) -> thousands_sep_result< char >
 
template FMT_API auto thousands_sep_impl< wchar_t > (locale_ref) -> thousands_sep_result< wchar_t >
 
template<typename Locale , FMT_ENABLE_IF(detail::is_locale< Locale >::value) >
FMT_END_DETAIL_NAMESPACE auto vformat (const Locale &loc, string_view fmt, format_args args) -> std::string
 
template<typename Locale , typename... T, FMT_ENABLE_IF(detail::is_locale< Locale >::value) >
auto format (const Locale &loc, format_string< T...> fmt, T &&...args) -> std::string
 
template<typename OutputIt , typename Locale , FMT_ENABLE_IF(detail::is_output_iterator< OutputIt, char >::value &&detail::is_locale< Locale >::value) >
auto vformat_to (OutputIt out, const Locale &loc, string_view fmt, format_args args) -> OutputIt
 
template<typename OutputIt , typename Locale , typename... T, FMT_ENABLE_IF(detail::is_output_iterator< OutputIt, char >::value &&detail::is_locale< Locale >::value) >
FMT_INLINE auto format_to (OutputIt out, const Locale &loc, format_string< T...> fmt, T &&...args) -> OutputIt
 
template<typename Locale , typename... T, FMT_ENABLE_IF(detail::is_locale< Locale >::value) >
FMT_NODISCARD FMT_INLINE auto formatted_size (const Locale &loc, format_string< T...> fmt, T &&...args) -> size_t
 

Variables

constexpr FMT_INLINE_VARIABLE
uint32_t 
detail::invalid_code_point = ~uint32_t()
 

Macro Definition Documentation

#define FMT_BEGIN_DETAIL_NAMESPACE   namespace detail {

Definition at line 52 of file format.h.

#define FMT_CATCH (   x)    catch (x)

Definition at line 132 of file format.h.

#define FMT_CUDA_VERSION   0

Definition at line 90 of file format.h.

#define FMT_DEPRECATED   /* deprecated */

Definition at line 76 of file format.h.

#define FMT_END_DETAIL_NAMESPACE   }

Definition at line 53 of file format.h.

#define FMT_FALLTHROUGH

Definition at line 64 of file format.h.

#define FMT_FUNC

Definition at line 4732 of file format.h.

#define FMT_GCC_VISIBILITY_HIDDEN

Definition at line 84 of file format.h.

#define FMT_HAS_BUILTIN (   x)    0

Definition at line 96 of file format.h.

#define FMT_MAYBE_UNUSED

Definition at line 142 of file format.h.

#define FMT_NOINLINE

Definition at line 102 of file format.h.

#define FMT_POWERS_OF_10 (   factor)
Value:
factor * 10, (factor)*100, (factor)*1000, (factor)*10000, (factor)*100000, \
(factor)*1000000, (factor)*10000000, (factor)*100000000, \
(factor)*1000000000

Definition at line 1162 of file format.h.

#define FMT_REDUCE_INT_INSTANTIATIONS   0

Definition at line 162 of file format.h.

#define FMT_STRING (   s)    FMT_STRING_IMPL(s, fmt::detail::compile_string, )

Constructs a compile-time format string from a string literal s.

Example**::

A compile-time error because 'd' is an invalid specifier for strings. std::string s = fmt::format(FMT_STRING("{:d}"), "foo");

Definition at line 1993 of file format.h.

#define FMT_STRING_IMPL (   s,
  base,
  explicit 
)
Value:
[] { \
/* Use the hidden visibility as a workaround for a GCC bug (#1973). */ \
/* Use a macro-like name to avoid shadowing warnings. */ \
struct FMT_GCC_VISIBILITY_HIDDEN FMT_COMPILE_STRING : base { \
using char_type FMT_MAYBE_UNUSED = fmt::remove_cvref_t<decltype(s[0])>; \
operator fmt::basic_string_view<char_type>() const { \
return fmt::detail_exported::compile_string_to_view<char_type>(s); \
} \
}; \
return FMT_COMPILE_STRING(); \
}()
GLdouble s
Definition: glad.h:3009
#define FMT_MAYBE_UNUSED
Definition: format.h:142
#define FMT_CONSTEXPR
Definition: core.h:104
#define FMT_GCC_VISIBILITY_HIDDEN
Definition: format.h:84

Definition at line 1969 of file format.h.

#define FMT_THROW (   x)    throw x

Definition at line 120 of file format.h.

#define FMT_TRY   try

Definition at line 131 of file format.h.

#define FMT_USE_DOUBLE   1

Definition at line 830 of file format.h.

#define FMT_USE_FLOAT   1

Definition at line 827 of file format.h.

#define FMT_USE_FLOAT128   0

Definition at line 849 of file format.h.

#define FMT_USE_FULL_CACHE_DRAGONBOX   0
#define FMT_USE_LONG_DOUBLE   1

Definition at line 833 of file format.h.

#define FMT_USE_USER_DEFINED_LITERALS   0

Definition at line 153 of file format.h.

Typedef Documentation

template<typename T >
using convert_float_result = conditional_t<std::is_same<T, float>::value || std::numeric_limits<T>::digits == std::numeric_limits<double>::digits, double, T>

Definition at line 1852 of file format.h.

using format_func = void (*)(detail::buffer<char>&, int, const char*)

Definition at line 4175 of file format.h.

using fp = basic_fp<unsigned long long>
Examples:
FS/FS_Background.C, standalone/dsmprint.C, and standalone/i3dsphere.C.

Definition at line 1697 of file format.h.

template<typename Char >
using make_unsigned_char = typename conditional_t<std::is_integral<Char>::value, std::make_unsigned<Char>, type_identity<uint32_t>>::type

Definition at line 1941 of file format.h.

Definition at line 1036 of file format.h.

template<typename T >
using uint32_or_64_or_128_t = conditional_t<num_bits<T>() <= 32 && !FMT_REDUCE_INT_INSTANTIATIONS, uint32_t, conditional_t<num_bits<T>() <= 64, uint64_t, uint128_t>>

Definition at line 1158 of file format.h.

template<typename T >
using uint64_or_128_t = conditional_t<num_bits<T>() <= 64, uint64_t, uint128_t>

Definition at line 1160 of file format.h.

Enumeration Type Documentation

anonymous enum
Enumerator
inline_buffer_size 

Definition at line 900 of file format.h.

enum dragon
Enumerator
predecessor_closer 
fixup 
fixed 
fixed 

Definition at line 3265 of file format.h.

enum float_format : unsigned char
strong
Enumerator
general 
exp 
fixed 
hex 

Definition at line 2479 of file format.h.

enum round_direction
strong
Enumerator
unknown 
up 
down 

Definition at line 2836 of file format.h.

Function Documentation

FMT_CONSTEXPR20 void adjust_precision ( int precision,
int  exp10 
)
inline

Definition at line 2908 of file format.h.

template<typename T >
constexpr auto convert_float ( value) -> convert_float_result<T>

Definition at line 1855 of file format.h.

template<typename Char >
FMT_CONSTEXPR20 FMT_INLINE void copy2 ( Char *  dst,
const char *  src 
)

Definition at line 1331 of file format.h.

FMT_CONSTEXPR20 auto count_digits ( uint64_t  n) -> int
inline

Definition at line 1228 of file format.h.

template<int BITS, typename UInt >
FMT_CONSTEXPR auto count_digits ( UInt  n) -> int

Definition at line 1239 of file format.h.

FMT_CONSTEXPR20 auto count_digits ( uint32_t  n) -> int
inline

Definition at line 1280 of file format.h.

template<typename T >
FMT_CONSTEXPR auto count_digits_fallback ( n) -> int

Definition at line 1185 of file format.h.

template<typename Char >
auto decimal_point ( locale_ref  loc) -> Char
inline

Definition at line 1314 of file format.h.

template<>
auto decimal_point ( locale_ref  loc) -> wchar_t
inline

Definition at line 1317 of file format.h.

template<typename Char >
template FMT_API auto decimal_point_impl ( locale_ref  loc) -> Char
template<typename Int >
constexpr auto digits10 ( ) -> int
noexcept

Definition at line 1289 of file format.h.

template<>
constexpr auto digits10< int128_opt > ( ) -> int
noexcept

Definition at line 1292 of file format.h.

template<>
constexpr auto digits10< uint128_t > ( ) -> int
noexcept

Definition at line 1293 of file format.h.

constexpr const char* digits2 ( size_t  value)

Definition at line 1168 of file format.h.

template<typename OutputIt , typename DecimalFP , typename Char , typename Grouping = digit_grouping<Char>>
FMT_CONSTEXPR20 auto do_write_float ( OutputIt  out,
const DecimalFP &  f,
const format_specs< Char > &  specs,
float_specs  fspecs,
locale_ref  loc 
) -> OutputIt

Definition at line 2665 of file format.h.

template<typename Char >
auto equal2 ( const Char *  lhs,
const char *  rhs 
) -> bool

Definition at line 1322 of file format.h.

auto equal2 ( const char *  lhs,
const char *  rhs 
) -> bool
inline

Definition at line 1325 of file format.h.

template<typename Float >
constexpr auto exponent_bias ( ) -> int

Definition at line 1622 of file format.h.

template<typename Float >
constexpr auto exponent_mask ( ) -> typename dragonbox::float_info<Float>::carrier_uint

Definition at line 1616 of file format.h.

template<typename OutputIt , typename Char >
FMT_NOINLINE FMT_CONSTEXPR auto fill ( OutputIt  it,
size_t  n,
const fill_t< Char > &  fill 
) -> OutputIt

Definition at line 1860 of file format.h.

template<typename Char >
auto find_escape ( const Char *  begin,
const Char *  end 
) -> find_escape_result<Char>

Definition at line 1944 of file format.h.

auto find_escape ( const char *  begin,
const char *  end 
) -> find_escape_result<char>
inline

Definition at line 1954 of file format.h.

template<typename Locale , typename... T, FMT_ENABLE_IF(detail::is_locale< Locale >::value) >
auto format ( const Locale &  loc,
format_string< T...>  fmt,
T &&...  args 
) -> std::string
inline

Definition at line 4669 of file format.h.

template<typename Char , typename UInt >
FMT_CONSTEXPR20 auto format_decimal ( Char *  out,
UInt  value,
int  size 
) -> format_decimal_result<Char*>

Definition at line 1349 of file format.h.

template<typename Char , typename UInt , typename Iterator , FMT_ENABLE_IF(!std::is_pointer< remove_cvref_t< Iterator >>::value) >
FMT_CONSTEXPR auto format_decimal ( Iterator  out,
UInt  value,
int  size 
) -> format_decimal_result<Iterator>
inline

Definition at line 1373 of file format.h.

FMT_CONSTEXPR20 void format_dragon ( basic_fp< uint128_t value,
unsigned  flags,
int  num_digits,
buffer< char > &  buf,
int exp10 
)
inline

Definition at line 3274 of file format.h.

FMT_API void format_error_code ( buffer< char > &  out,
int  error_code,
string_view  message 
)
noexcept
template<typename Float >
FMT_CONSTEXPR20 auto format_float ( Float  value,
int  precision,
float_specs  specs,
buffer< char > &  buf 
) -> int

Definition at line 3490 of file format.h.

template<typename Float , FMT_ENABLE_IF(!is_double_double< Float >::value) >
FMT_CONSTEXPR20 void format_hexfloat ( Float  value,
int  precision,
float_specs  specs,
buffer< char > &  buf 
)

Definition at line 3403 of file format.h.

FMT_API void format_system_error ( detail::buffer< char > &  out,
int  error_code,
const char *  message 
)
noexcept

Formats an error message for an error returned by an operating system or a language runtime, for example a file opening error, and writes it to out. The format is the same as the one used by std::system_error(ec, message) where ec is std::error_code(error_code, std::generic_category()}). It is implementation-defined but normally looks like:

.. parsed-literal:: <message>*: *<system-message>*

where *<message>* is the passed message and *<system-message>* is the system message corresponding to the error code. error_code* is a system error code as given by errno.

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

template<typename OutputIt , typename Locale , typename... T, FMT_ENABLE_IF(detail::is_output_iterator< OutputIt, char >::value &&detail::is_locale< Locale >::value) >
FMT_INLINE auto format_to ( OutputIt  out,
const Locale &  loc,
format_string< T...>  fmt,
T &&...  args 
) -> OutputIt

Definition at line 4688 of file format.h.

template<unsigned BASE_BITS, typename Char , typename UInt >
FMT_CONSTEXPR auto format_uint ( Char *  buffer,
UInt  value,
int  num_digits,
bool  upper = false 
) -> Char*

Definition at line 1382 of file format.h.

template<unsigned BASE_BITS, typename Char , typename It , typename UInt >
auto format_uint ( It  out,
UInt  value,
int  num_digits,
bool  upper = false 
) -> It
inline

Definition at line 1396 of file format.h.

template<typename Locale , typename... T, FMT_ENABLE_IF(detail::is_locale< Locale >::value) >
FMT_NODISCARD FMT_INLINE auto formatted_size ( const Locale &  loc,
format_string< T...>  fmt,
T &&...  args 
) -> size_t

Definition at line 4695 of file format.h.

template<typename Context , typename ID >
FMT_CONSTEXPR auto get_arg ( Context ctx,
ID  id 
) -> typename Context::format_arg

Definition at line 4094 of file format.h.

FMT_CONSTEXPR fp get_cached_power ( int  min_exponent,
int pow10_exponent 
)
inline

Definition at line 1825 of file format.h.

template<template< typename > class Handler, typename FormatArg , typename ErrorHandler >
FMT_CONSTEXPR auto get_dynamic_spec ( FormatArg  arg,
ErrorHandler  eh 
) -> int

Definition at line 4087 of file format.h.

FMT_CONSTEXPR round_direction get_round_direction ( uint64_t  divisor,
uint64_t  remainder,
uint64_t  error 
)
inline

Definition at line 2842 of file format.h.

constexpr auto get_significand_size ( const big_decimal_fp f) -> int

Definition at line 2566 of file format.h.

template<typename T >
auto get_significand_size ( const dragonbox::decimal_fp< T > &  f) -> int
inline

Definition at line 2570 of file format.h.

FMT_INLINE FMT_CONSTEXPR20 auto grisu_gen_digits ( fp  value,
uint64_t  error,
int exp,
gen_digits_handler handler 
) -> digits::result

Definition at line 2919 of file format.h.

template<typename T >
auto group_digits ( value) -> group_digits_view<T>

Returns a view that formats an integer value using ',' as a locale-independent thousands separator.

Example**::

fmt::print("{}", fmt::group_digits(12345)); Output: "12,345"

Definition at line 4409 of file format.h.

template<template< typename > class Handler, typename Context >
FMT_CONSTEXPR void handle_dynamic_spec ( int value,
arg_ref< typename Context::char_type >  ref,
Context ctx 
)

Definition at line 4102 of file format.h.

template<typename Float >
constexpr bool has_implicit_bit ( )

Definition at line 1601 of file format.h.

template<typename T , FMT_ENABLE_IF(is_signed< T >::value) >
FMT_BEGIN_DETAIL_NAMESPACE constexpr auto is_negative ( value) -> bool

Definition at line 1136 of file format.h.

template<typename T , FMT_ENABLE_IF(!is_signed< T >::value) >
constexpr auto is_negative ( ) -> bool

Definition at line 1140 of file format.h.

FMT_API auto is_printable ( uint32_t  cp) -> bool

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

template<typename T >
FMT_CONSTEXPR auto is_supported_floating_point ( ) -> bool

Definition at line 1145 of file format.h.

template<typename T , FMT_ENABLE_IF(std::is_floating_point< T >::value &&has_isfinite< T >::value) >
FMT_CONSTEXPR20 bool isfinite ( value)

Definition at line 2810 of file format.h.

template<typename T , FMT_ENABLE_IF(!has_isfinite< T >::value) >
FMT_CONSTEXPR bool isfinite ( value)

Definition at line 2817 of file format.h.

template<typename T >
constexpr bool isnan ( value)

Definition at line 2797 of file format.h.

template<typename It , typename Sentinel >
auto join ( It  begin,
Sentinel  end,
string_view  sep 
) -> join_view<It, Sentinel>

Returns a view that formats the iterator range [begin, end) with elements separated by sep.

Definition at line 4489 of file format.h.

template<typename Range >
auto join ( Range &&  range,
string_view  sep 
) -> join_view<detail::iterator_t<Range>, detail::sentinel_t<Range>>

Returns a view that formats range with elements separated by sep.

Example**::

std::vector<int> v = {1, 2, 3}; fmt::print("{}", fmt::join(v, ", ")); Output: "1, 2, 3"

fmt::join applies passed format specifiers to the range elements::

fmt::print("{:02}", fmt::join(v, ", ")); Output: "01, 02, 03"

Definition at line 4510 of file format.h.

template<typename T >
FMT_CONSTEXPR auto make_write_int_arg ( value,
sign_t  sign 
) -> write_int_arg<uint32_or_64_or_128_t<T>>

Definition at line 2258 of file format.h.

FMT_CONSTEXPR uint64_t multiply ( uint64_t  lhs,
uint64_t  rhs 
)
inline

Definition at line 1718 of file format.h.

auto needs_escape ( uint32_t  cp) -> bool
inline

Definition at line 1926 of file format.h.

template<int SHIFT = 0, typename F >
FMT_CONSTEXPR basic_fp<F> normalize ( basic_fp< F >  value)
template<typename Float >
constexpr int num_significand_bits ( )

Definition at line 1608 of file format.h.

FMT_CONSTEXPR fp operator* ( fp  x,
fp  y 
)
inline

Definition at line 1735 of file format.h.

template<typename ErrorHandler = error_handler, typename Char >
FMT_CONSTEXPR auto parse_float_type_spec ( const format_specs< Char > &  specs,
ErrorHandler &&  eh = {} 
) -> float_specs

Definition at line 2497 of file format.h.

FMT_CONSTEXPR void prefix_append ( unsigned &  prefix,
unsigned  value 
)
inline

Definition at line 2247 of file format.h.

template<typename T >
auto ptr ( p) -> const void*

Converts p to const void* for pointer formatting.

Example**::

auto s = fmt::format("{}", fmt::ptr(p));

Examples:
standalone/tiledevice.C.

Definition at line 4331 of file format.h.

template<typename T , typename Deleter >
auto ptr ( const std::unique_ptr< T, Deleter > &  p) -> const void*

Definition at line 4336 of file format.h.

template<typename T >
auto ptr ( const std::shared_ptr< T > &  p) -> const void*

Definition at line 4339 of file format.h.

FMT_API void report_error ( format_func  func,
int  error_code,
const char *  message 
)
noexcept

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

FMT_API void report_system_error ( int  error_code,
const char *  message 
)
noexcept

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

template<typename Char , typename Sign >
constexpr Char sign ( Sign  s)

Definition at line 1178 of file format.h.

template<typename T , FMT_ENABLE_IF(is_floating_point< T >::value) >
FMT_INLINE FMT_CONSTEXPR bool signbit ( value)

Definition at line 2824 of file format.h.

template<typename... T>
auto system_error ( int  error_code,
format_string< T...>  fmt,
T &&...  args 
) -> std::system_error

Constructs :class:std::system_error with a message formatted with fmt::format(fmt, args...). error_code* is a system error code as given by errno.

Example**::

This throws std::system_error with the description cannot open file 'madeup': No such file or directory or similar (system message may vary). const char* filename = "madeup"; std::FILE* file = std::fopen(filename, "r"); if (!file) throw fmt::system_error(errno, "cannot open file '{}'", filename);

Examples:
mocapstream/MocapStreamRokokoHDK.C.

Definition at line 4205 of file format.h.

template<typename Char >
auto thousands_sep ( locale_ref  loc) -> thousands_sep_result<Char>
inline

Definition at line 1303 of file format.h.

template<>
auto thousands_sep ( locale_ref  loc) -> thousands_sep_result<wchar_t>
inline

Definition at line 1308 of file format.h.

template<typename Char >
FMT_API auto thousands_sep_impl ( locale_ref  loc) -> thousands_sep_result< Char >
template FMT_API auto thousands_sep_impl< char > ( locale_ref  ) -> thousands_sep_result< char >
template FMT_API auto thousands_sep_impl< wchar_t > ( locale_ref  ) -> thousands_sep_result< wchar_t >
template<typename T , FMT_ENABLE_IF(!std::is_integral< T >::value) >
auto to_string ( const T &  value) -> std::string
inline

Converts value to std::string using the default format for type T.

Example**::

#include <fmt/format.h>

std::string answer = fmt::to_string(42);

Definition at line 4527 of file format.h.

template<typename T , FMT_ENABLE_IF(std::is_integral< T >::value) >
FMT_NODISCARD auto to_string ( value) -> std::string
inline

Definition at line 4534 of file format.h.

template<typename Char , size_t SIZE>
FMT_NODISCARD auto to_string ( const basic_memory_buffer< Char, SIZE > &  buf) -> std::basic_string<Char>

Definition at line 4544 of file format.h.

uint128_fallback umul128 ( uint64_t  x,
uint64_t  y 
)
inlinenoexcept

Definition at line 1484 of file format.h.

template<typename Enum >
constexpr auto underlying ( Enum  e) -> underlying_t<Enum>
noexcept

Converts e to the underlying type.

Example**::

enum class color { red, green, blue }; auto s = fmt::format("{}", fmt::underlying(color::red));

Definition at line 4354 of file format.h.

template<typename Locale , typename Char >
auto vformat ( const Locale &  loc,
basic_string_view< Char >  fmt,
basic_format_args< buffer_context< type_identity_t< Char >>>  args 
) -> std::basic_string<Char>

Definition at line 4167 of file format.h.

template<typename Locale , FMT_ENABLE_IF(detail::is_locale< Locale >::value) >
FMT_END_DETAIL_NAMESPACE auto vformat ( const Locale &  loc,
string_view  fmt,
format_args  args 
) -> std::string
inline

Definition at line 4662 of file format.h.

template<typename Char >
FMT_BEGIN_DETAIL_NAMESPACE void vformat_to ( buffer< Char > &  buf,
basic_string_view< Char >  fmt,
typename vformat_args< Char >::type  args,
locale_ref  loc 
)

Definition at line 4554 of file format.h.

template FMT_API void vformat_to ( buffer< char > &  ,
string_view  ,
typename vformat_args<>::type  ,
locale_ref   
)
template<typename OutputIt , typename Locale , FMT_ENABLE_IF(detail::is_output_iterator< OutputIt, char >::value &&detail::is_locale< Locale >::value) >
auto vformat_to ( OutputIt  out,
const Locale &  loc,
string_view  fmt,
format_args  args 
) -> OutputIt

Definition at line 4677 of file format.h.

FMT_END_DETAIL_NAMESPACE FMT_API auto vsystem_error ( int  error_code,
string_view  format_str,
format_args  args 
) -> std::system_error

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

template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write ( OutputIt  out,
Char  value,
const format_specs< Char > &  specs,
locale_ref  loc = {} 
) -> OutputIt

Definition at line 2091 of file format.h.

template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_integral< T >::value &&!std::is_same< T, bool >::value &&std::is_same< OutputIt, buffer_appender< Char >>::value) >
FMT_CONSTEXPR FMT_INLINE auto write ( OutputIt  out,
value,
const format_specs< Char > &  specs,
locale_ref  loc 
) -> OutputIt

Definition at line 2360 of file format.h.

template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write ( OutputIt  out,
basic_string_view< Char >  s,
const format_specs< Char > &  specs 
) -> OutputIt

Definition at line 2420 of file format.h.

template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write ( OutputIt  out,
basic_string_view< type_identity_t< Char >>  s,
const format_specs< Char > &  specs,
locale_ref   
) -> OutputIt

Definition at line 2441 of file format.h.

template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write ( OutputIt  out,
const Char *  s,
const format_specs< Char > &  specs,
locale_ref   
) -> OutputIt

Definition at line 2448 of file format.h.

template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_integral< T >::value &&!std::is_same< T, bool >::value &&!std::is_same< T, Char >::value) >
FMT_CONSTEXPR auto write ( OutputIt  out,
value 
) -> OutputIt

Definition at line 2460 of file format.h.

template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_floating_point< T >::value) >
FMT_CONSTEXPR20 auto write ( OutputIt  out,
value,
format_specs< Char >  specs,
locale_ref  loc = {} 
) -> OutputIt

Definition at line 3869 of file format.h.

template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_fast_float< T >::value) >
FMT_CONSTEXPR20 auto write ( OutputIt  out,
value 
) -> OutputIt

Definition at line 3879 of file format.h.

template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_floating_point< T >::value &&!is_fast_float< T >::value) >
auto write ( OutputIt  out,
value 
) -> OutputIt
inline

Definition at line 3903 of file format.h.

template<typename Char , typename OutputIt >
auto write ( OutputIt  out,
monostate  ,
format_specs< Char >  = {},
locale_ref  = {} 
) -> OutputIt

Definition at line 3908 of file format.h.

template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write ( OutputIt  out,
basic_string_view< Char >  value 
) -> OutputIt

Definition at line 3915 of file format.h.

template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(is_string< T >::value) >
constexpr auto write ( OutputIt  out,
const T &  value 
) -> OutputIt

Definition at line 3924 of file format.h.

template<typename Char , typename OutputIt , typename T , bool check = std::is_enum<T>::value && !std::is_same<T, Char>::value && mapped_type_constant<T, basic_format_context<OutputIt, Char>>::value != type::custom_type, FMT_ENABLE_IF(check) >
FMT_CONSTEXPR auto write ( OutputIt  out,
value 
) -> OutputIt

Definition at line 3936 of file format.h.

template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(std::is_same< T, bool >::value) >
FMT_CONSTEXPR auto write ( OutputIt  out,
value,
const format_specs< Char > &  specs = {},
locale_ref  = {} 
) -> OutputIt

Definition at line 3942 of file format.h.

template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write ( OutputIt  out,
Char  value 
) -> OutputIt

Definition at line 3952 of file format.h.

template<typename Char , typename OutputIt >
FMT_CONSTEXPR_CHAR_TRAITS auto write ( OutputIt  out,
const Char *  value 
) -> OutputIt

Definition at line 3959 of file format.h.

template<typename Char , typename OutputIt , typename T , FMT_ENABLE_IF(std::is_same< T, void >::value) >
auto write ( OutputIt  out,
const T *  value,
const format_specs< Char > &  specs = {},
locale_ref  = {} 
) -> OutputIt

Definition at line 3968 of file format.h.

template<typename Char , typename OutputIt , typename T , typename Context = basic_format_context<OutputIt, Char>>
FMT_CONSTEXPR auto write ( OutputIt  out,
const T &  value 
) -> enable_if_t< std::is_class<T>::value && !is_string<T>::value && !is_floating_point<T>::value && !std::is_same<T, Char>::value && !std::is_same<T, remove_cvref_t<decltype(arg_mapper<Context>().map( value))>>::value, OutputIt>

Definition at line 3976 of file format.h.

template<align::type align = align::left, typename Char , typename OutputIt >
FMT_CONSTEXPR auto write_bytes ( OutputIt  out,
string_view  bytes,
const format_specs< Char > &  specs 
) -> OutputIt

Definition at line 1900 of file format.h.

template<typename Char , typename OutputIt >
FMT_CONSTEXPR auto write_char ( OutputIt  out,
Char  value,
const format_specs< Char > &  specs 
) -> OutputIt

Definition at line 2081 of file format.h.

template<size_t width, typename Char , typename OutputIt >
auto write_codepoint ( OutputIt  out,
char  prefix,
uint32_t  cp 
) -> OutputIt

Definition at line 1996 of file format.h.

template<typename Char , typename OutputIt >
auto write_escaped_char ( OutputIt  out,
Char  v 
) -> OutputIt

Definition at line 2067 of file format.h.

template<typename OutputIt , typename Char >
auto write_escaped_cp ( OutputIt  out,
const find_escape_result< Char > &  escape 
) -> OutputIt

Definition at line 2006 of file format.h.

template<typename Char , typename OutputIt >
auto write_escaped_string ( OutputIt  out,
basic_string_view< Char >  str 
) -> OutputIt

Definition at line 2051 of file format.h.

template<typename Char , typename It >
FMT_CONSTEXPR auto write_exponent ( int  exp,
It  it 
) -> It

Definition at line 1630 of file format.h.

template<typename OutputIt , typename DecimalFP , typename Char >
FMT_CONSTEXPR20 auto write_float ( OutputIt  out,
const DecimalFP &  f,
const format_specs< Char > &  specs,
float_specs  fspecs,
locale_ref  loc 
) -> OutputIt

Definition at line 2784 of file format.h.

template<typename Char , typename OutputIt , typename T >
FMT_CONSTEXPR20 auto write_float ( OutputIt  out,
value,
format_specs< Char >  specs,
locale_ref  loc 
) -> OutputIt

Definition at line 3819 of file format.h.

template<typename OutputIt , typename Char , typename W >
FMT_CONSTEXPR FMT_INLINE auto write_int ( OutputIt  out,
int  num_digits,
unsigned  prefix,
const format_specs< Char > &  specs,
W  write_digits 
) -> OutputIt

Definition at line 2129 of file format.h.

template<typename OutputIt , typename UInt , typename Char >
auto write_int ( OutputIt  out,
UInt  value,
unsigned  prefix,
const format_specs< Char > &  specs,
const digit_grouping< Char > &  grouping 
) -> OutputIt

Definition at line 2219 of file format.h.

template<typename Char , typename OutputIt , typename T >
FMT_CONSTEXPR FMT_INLINE auto write_int ( OutputIt  out,
write_int_arg< T >  arg,
const format_specs< Char > &  specs,
locale_ref   
) -> OutputIt

Definition at line 2295 of file format.h.

template<typename Char , typename OutputIt , typename T >
FMT_CONSTEXPR FMT_NOINLINE auto write_int_noinline ( OutputIt  out,
write_int_arg< T >  arg,
const format_specs< Char > &  specs,
locale_ref  loc 
) -> OutputIt

Definition at line 2351 of file format.h.

FMT_API auto write_loc ( appender  out,
loc_value  value,
const format_specs<> &  specs,
locale_ref  loc 
) -> bool
template<typename OutputIt , typename Char >
auto write_loc ( OutputIt  ,
loc_value  ,
const format_specs< Char > &  ,
locale_ref   
) -> bool
inline

Definition at line 2242 of file format.h.

template<typename Char , typename OutputIt >
FMT_CONSTEXPR20 auto write_nonfinite ( OutputIt  out,
bool  isnan,
format_specs< Char >  specs,
const float_specs fspecs 
) -> OutputIt

Definition at line 2541 of file format.h.

template<align::type align = align::left, typename OutputIt , typename Char , typename F >
FMT_CONSTEXPR auto write_padded ( OutputIt  out,
const format_specs< Char > &  specs,
size_t  size,
size_t  width,
F &&  f 
) -> OutputIt

Definition at line 1875 of file format.h.

template<align::type align = align::left, typename OutputIt , typename Char , typename F >
constexpr auto write_padded ( OutputIt  out,
const format_specs< Char > &  specs,
size_t  size,
F &&  f 
) -> OutputIt

Definition at line 1894 of file format.h.

template<typename Char , typename OutputIt , typename UIntPtr >
auto write_ptr ( OutputIt  out,
UIntPtr  value,
const format_specs< Char > *  specs 
) -> OutputIt

Definition at line 1910 of file format.h.

template<typename Char , typename OutputIt >
constexpr auto write_significand ( OutputIt  out,
const char *  significand,
int  significand_size 
) -> OutputIt

Definition at line 2575 of file format.h.

template<typename Char , typename OutputIt , typename UInt >
auto write_significand ( OutputIt  out,
UInt  significand,
int  significand_size 
) -> OutputIt
inline

Definition at line 2580 of file format.h.

template<typename Char , typename OutputIt , typename T , typename Grouping >
FMT_CONSTEXPR20 auto write_significand ( OutputIt  out,
significand,
int  significand_size,
int  exponent,
const Grouping &  grouping 
) -> OutputIt

Definition at line 2585 of file format.h.

template<typename Char , typename UInt , FMT_ENABLE_IF(std::is_integral< UInt >::value) >
auto write_significand ( Char *  out,
UInt  significand,
int  significand_size,
int  integral_size,
Char  decimal_point 
) -> Char*
inline

Definition at line 2600 of file format.h.

template<typename OutputIt , typename UInt , typename Char , FMT_ENABLE_IF(!std::is_pointer< remove_cvref_t< OutputIt >>::value) >
auto write_significand ( OutputIt  out,
UInt  significand,
int  significand_size,
int  integral_size,
Char  decimal_point 
) -> OutputIt
inline

Definition at line 2623 of file format.h.

template<typename OutputIt , typename Char >
FMT_CONSTEXPR auto write_significand ( OutputIt  out,
const char *  significand,
int  significand_size,
int  integral_size,
Char  decimal_point 
) -> OutputIt

Definition at line 2634 of file format.h.

template<typename OutputIt , typename Char , typename T , typename Grouping >
FMT_CONSTEXPR20 auto write_significand ( OutputIt  out,
significand,
int  significand_size,
int  integral_size,
Char  decimal_point,
const Grouping &  grouping 
) -> OutputIt

Definition at line 2646 of file format.h.