19#ifndef LIB_STRINGIFY_H_
20#define LIB_STRINGIFY_H_
26#include "big_int_util.h"
35 template <
typename U, c
string (U::*)() const>
38 static char func(Check<U, &U::toString> *);
44 enum { value =
sizeof(func<T>(0)) ==
sizeof(
char) };
47template <typename T, typename = decltype(std::to_string(std::declval<T>()))>
49 return std::to_string(value);
53auto toString(
const T &value) ->
typename std::enable_if_t<HasToString<T>::value,
cstring> {
54 return value.toString();
58auto toString(T &value) ->
typename std::enable_if_t<HasToString<T>::value,
cstring> {
59 return value.toString();
63auto toString(
const T *value) ->
typename std::enable_if_t<HasToString<T>::value,
cstring> {
64 return value->toString();
68auto toString(T *value) ->
typename std::enable_if_t<HasToString<T>::value,
cstring> {
69 return value->toString();
73cstring toString(std::string value);
74cstring toString(
const char *value);
76cstring toString(std::string_view value);
78cstring toString(
const big_int value,
unsigned width,
bool sign,
unsigned int base = 10);
79cstring toString(
const void *value);
82cstring printf_format(
const char *fmt_str, ...);
84cstring vprintf_format(
const char *fmt_str, va_list ap);
85char DigitToChar(
int digit);
Definition stringify.h:34