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>
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)
249 template <
size_t size>
258 template <
typename Allocator>
260 const std::basic_string<
char, std::char_traits<char>, Allocator>&
str)
275 template <
typename T,
276 typename =
typename std::enable_if<
277 std::is_enum<T>{} && !std::is_convertible<T, int>{}>
::type>
285 typename std::enable_if<
287 (std::is_same<T, std::vector<bool>::reference>
::value ||
325 namespace strings_internal {
330 std::initializer_list<absl::string_view> pieces);
344 const AlphaNum& c,
const AlphaNum& d);
347 template <
typename... AV>
352 {
a.Piece(),
b.Piece(), c.Piece(), d.Piece(),
e.Piece(),
389 const AlphaNum& c,
const AlphaNum& d);
392 template <
typename... AV>
397 dest, {
a.Piece(),
b.Piece(), c.Piece(), d.Piece(),
e.Piece(),
403 inline strings_internal::AlphaNumBuffer<
415 #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
constexpr string_view NullSafeStringView(const char *p)
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