Go to the documentation of this file.
15 #ifndef ABSL_STRINGS_INTERNAL_STR_FORMAT_BIND_H_
16 #define ABSL_STRINGS_INTERNAL_STR_FORMAT_BIND_H_
23 #include "absl/base/port.h"
24 #include "absl/strings/internal/str_format/arg.h"
25 #include "absl/strings/internal/str_format/checker.h"
26 #include "absl/strings/internal/str_format/parser.h"
27 #include "absl/types/span.h"
28 #include "absl/utility/utility.h"
33 class UntypedFormatSpec;
96 template <
int i,
int j>
98 ErrorMaker<i == j> ParametersPassed = {}) {
99 static_assert(SpecifierCount(i) == ParametersPassed(j),
100 "Number of arguments passed must match the number of "
101 "conversion specifiers.");
109 static_assert(MismatchedArgumentNumber(
arg),
110 "Passed argument must match specified format.");
116 bool res[] = {
true, CheckMatch<Args, C, I + 1>()...};
122 #ifdef ABSL_INTERNAL_ENABLE_FORMAT_CHECKER
141 "
Format specified does not
match the arguments passed.")));
148 static_assert(
sizeof(
T*) == 0,
149 "Format specified does not match the arguments passed.");
154 __attribute__((enable_if(ValidFormatImpl<Args...>(s),
"bad format trap")))
158 __attribute__((enable_if(ValidFormatImpl<Args...>(s),
"bad format trap")))
161 #else // ABSL_INTERNAL_ENABLE_FORMAT_CHECKER
166 #endif // ABSL_INTERNAL_ENABLE_FORMAT_CHECKER
182 for (
size_t i = 0;
i <
args.size(); ++
i) {
192 std::ostream&
Print(std::ostream& os)
const;
231 template <
typename T>
237 template <
typename S>
248 #endif // ABSL_STRINGS_INTERNAL_STR_FORMAT_BIND_H_
unsigned char match[65280+2]
#define ABSL_ARRAYSIZE(array)
#define ABSL_NAMESPACE_END
#define T(upbtypeconst, upbtype, ctype, default_value)
#define ABSL_NAMESPACE_BEGIN
make_integer_sequence< size_t, N > make_index_sequence
__attribute__(void) start
absl::string_view string_view
bool Format(FormatRawSink raw_sink, const FormatSpec< Args... > &format, const Args &... args)
constexpr Span< T > MakeSpan(T *ptr, size_t size) noexcept
grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:48