Go to the documentation of this file.
53 #ifndef ABSL_STRINGS_STR_CAT_H_
54 #define ABSL_STRINGS_STR_CAT_H_
59 #include <type_traits>
62 #include "absl/base/port.h"
63 #include "absl/strings/numbers.h"
64 #include "absl/strings/string_view.h"
69 namespace strings_internal {
73 template <
size_t max_size>
74 struct AlphaNumBuffer {
75 std::array<char, max_size>
data;
139 template <
typename Int>
142 typename std::enable_if<
sizeof(
Int) == 1 &&
145 template <
typename Int>
148 typename std::enable_if<
sizeof(
Int) == 2 &&
151 template <
typename Int>
154 typename std::enable_if<
sizeof(
Int) == 4 &&
157 template <
typename Int>
160 typename std::enable_if<
sizeof(
Int) == 8 &&
163 template <
typename Po
intee>
190 template <
typename Int>
192 typename std::enable_if<(
sizeof(
Int) <= 8)>::
type* =
nullptr)
243 template <
size_t size>
251 template <
typename Allocator>
253 const std::basic_string<
char, std::char_traits<char>, Allocator>&
str)
268 template <
typename T,
269 typename =
typename std::enable_if<
270 std::is_enum<T>{} && !std::is_convertible<T, int>{}>
::type>
278 typename std::enable_if<
280 (std::is_same<T, std::vector<bool>::reference>
::value ||
318 namespace strings_internal {
323 std::initializer_list<absl::string_view> pieces);
337 const AlphaNum& c,
const AlphaNum& d);
340 template <
typename... AV>
342 const AlphaNum& a,
const AlphaNum&
b,
const AlphaNum& c,
const AlphaNum& d,
343 const AlphaNum& e,
const AV&...
args) {
345 {
a.Piece(),
b.Piece(),
c.Piece(),
d.Piece(),
e.Piece(),
346 static_cast<const AlphaNum&
>(
args).Piece()...});
382 const AlphaNum& c,
const AlphaNum& d);
385 template <
typename... AV>
387 const AlphaNum& c,
const AlphaNum& d,
const AlphaNum& e,
390 dest, {
a.Piece(),
b.Piece(),
c.Piece(),
d.Piece(),
e.Piece(),
391 static_cast<const AlphaNum&
>(
args).Piece()...});
396 inline strings_internal::AlphaNumBuffer<
399 strings_internal::AlphaNumBuffer<numbers_internal::kSixDigitsToBufferSize>
408 #endif // ABSL_STRINGS_STR_CAT_H_
AlphaNum(unsigned long x)
internal::PointeeMatcher< InnerMatcher > Pointee(const InnerMatcher &inner_matcher)
Hex(Int v, PadSpec spec=absl::kNoPad, typename std::enable_if< sizeof(Int)==2 &&!std::is_pointer< Int >::value >::type *=nullptr)
void StrAppend(std::string *dest, const AlphaNum &a)
void AppendPieces(std::string *dest, std::initializer_list< absl::string_view > pieces)
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
Hex(Int v, PadSpec spec=absl::kNoPad, typename std::enable_if< sizeof(Int)==1 &&!std::is_pointer< Int >::value >::type *=nullptr)
size_t SixDigitsToBuffer(double d, char *buffer)
std::string CatPieces(std::initializer_list< absl::string_view > pieces)
#define ABSL_NAMESPACE_END
AlphaNum(unsigned long long x)
#define T(upbtypeconst, upbtype, ctype, default_value)
const char * data() const
std::array< char, max_size > data
absl::string_view::size_type size() const
#define ABSL_MUST_USE_RESULT
AlphaNum(absl::string_view pc)
#define ABSL_NAMESPACE_BEGIN
Hex(Int v, PadSpec spec=absl::kNoPad, typename std::enable_if< sizeof(Int)==8 &&!std::is_pointer< Int >::value >::type *=nullptr)
constexpr size_type size() const noexcept
def c_str(s, encoding='ascii')
unsigned __int64 uint64_t
char digits_[numbers_internal::kFastToBufferSize]
absl::string_view Piece() const
_W64 unsigned int uintptr_t
strings_internal::AlphaNumBuffer< numbers_internal::kSixDigitsToBufferSize > SixDigits(double d)
Hex(PadSpec spec, uint64_t v)
AlphaNum(const char *c_str)
Hex(Int v, PadSpec spec=absl::kNoPad, typename std::enable_if< sizeof(Int)==4 &&!std::is_pointer< Int >::value >::type *=nullptr)
AlphaNum(const std::basic_string< char, std::char_traits< char >, Allocator > &str)
static const int kFastToBufferSize
Dec(Int v, PadSpec spec=absl::kNoPad, typename std::enable_if<(sizeof(Int)<=8)>::type *=nullptr)
static const int kSixDigitsToBufferSize
char * FastIntToBuffer(int32_t, char *)
AlphaNum(const strings_internal::AlphaNumBuffer< size > &buf)
AlphaNum & operator=(const AlphaNum &)=delete
constexpr const_pointer data() const noexcept
const typedef T & const_reference
Hex(Pointee *v, PadSpec spec=absl::kNoPad)
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:19