28 #include <type_traits>
62 const char *
data() const noexcept {
return sv_.data(); }
65 std::size_t
length() const noexcept {
return sv_.length(); }
68 std::size_t
size() const noexcept {
return sv_.size(); }
71 explicit operator std::string()
const {
return std::string(sv_); };
90 inline std::string
cat() {
return std::string(); }
97 std::string
cat(
const ConvertingStringView& s1,
const ConvertingStringView& s2);
101 std::string
cat(
const ConvertingStringView& s1,
const ConvertingStringView& s2,
102 const ConvertingStringView& s3);
106 std::string
cat(std::initializer_list<ConvertingStringView> pieces);
109 template <
typename... Args,
typename = std::enable_if_t<(
sizeof...(Args) > 3)>>
110 inline std::string
cat(
const Args&... args)
112 return cat({ args... });
A string view that can automatically convert numbers into strings.
Definition: cat.h:42
const char * data() const noexcept
Return a pointer to the internal character buffer.
Definition: cat.h:62
ConvertingStringView(int a)
Construct a ConvertingStringView from an integer.
Definition: cat.h:49
ConvertingStringView(long a)
Construct a ConvertingStringView from a long integer.
Definition: cat.h:51
ConvertingStringView(unsigned long long a)
Construct a ConvertingStringView from an unsigned long long integer.
Definition: cat.h:54
std::size_t size() const noexcept
Return the length of the string.
Definition: cat.h:68
ConvertingStringView(string_view sv)
Construct a ConvertingStringView from a string_view.
Definition: cat.h:45
ConvertingStringView(const std::string &str)
Construct a ConvertingStringView from a std::string.
Definition: cat.h:44
ConvertingStringView(long long a)
Construct a ConvertingStringView from a long long integer.
Definition: cat.h:53
ConvertingStringView(unsigned int a)
Construct a ConvertingStringView from an unsigned integer.
Definition: cat.h:50
ConvertingStringView(unsigned long a)
Construct a ConvertingStringView from an unsigned long integer.
Definition: cat.h:52
ConvertingStringView(double a)
Construct a ConvertingStringView from a double.
Definition: cat.h:56
ConvertingStringView(char c)
Construct a ConvertingStringView from a character.
Definition: cat.h:48
std::size_t length() const noexcept
Return the length of the string.
Definition: cat.h:65
ConvertingStringView(float a)
Construct a ConvertingStringView from a float.
Definition: cat.h:55
ConvertingStringView(const char *str)
Construct a ConvertingStringView from a const char *.
Definition: cat.h:46
Definition of macros used internally by GUL.
Namespace gul14 contains all functions and classes of the General Utility Library.
Definition: doxygen.h:26
std::string cat()
Efficiently concatenate an arbitrary number of strings and numbers.
Definition: cat.h:90
Provides a gul14::string_view that is fully compatible with C++17's std::string_view.