1 #ifndef ABSL_STRINGS_INTERNAL_STR_FORMAT_BIND_H_ 2 #define ABSL_STRINGS_INTERNAL_STR_FORMAT_BIND_H_ 18 class UntypedFormatSpec;
45 assert(!has_parsed_conversion());
49 assert(has_parsed_conversion());
63 template <
typename T,
typename...>
71 template <
typename... Args>
77 #if ABSL_INTERNAL_ENABLE_FORMAT_CHECKER 83 __attribute__((unavailable("
Format std::
string is not constexpr.")));
91 template <typename =
void>
96 "
Format specified does not match the arguments passed.")));
98 template <typename T =
void>
101 "constexpr trap"))) {
102 static_assert(
sizeof(T*) == 0,
103 "Format specified does not match the arguments passed.");
108 __attribute__((enable_if(ValidFormatImpl<ArgumentToConv<Args>()...>(s),
113 __attribute__((enable_if(ValidFormatImpl<ArgumentToConv<Args>()...>(s),
117 #else // ABSL_INTERNAL_ENABLE_FORMAT_CHECKER 122 #endif // ABSL_INTERNAL_ENABLE_FORMAT_CHECKER 124 template <
Conv...
C,
typename =
typename std::enable_if<
125 sizeof...(C) ==
sizeof...(Args) &&
132 template <
typename... Args>
143 std::ostream& Print(std::ostream& os)
const;
181 template <
typename T>
187 template <
typename S>
197 #endif // ABSL_STRINGS_INTERNAL_STR_FORMAT_BIND_H_
std::vector< std::string > args_
bool Format(FormatRawSink raw_sink, const FormatSpec< Args... > &format, const Args &... args)
static char data[kDataSize]
std::string format(const std::string &, const time_point< seconds > &, const femtoseconds &, const time_zone &)