4namespace cppgres::utils {
7concept is_cstring = std::same_as<T, char *> || std::same_as<T, const char *>;
11 { t.c_str() } -> std::same_as<const char *>;
16 { t.data() } -> std::same_as<const char *>;
17 { t.length() } -> std::same_as<std::size_t>;
23template <is_c
string S>
const char *to_cstring(S
string) {
24 return const_cast<const char *
>(string);
27template <c_str_available S>
const char *to_cstring(S &&
string) {
return string.c_str(); }
32 operator const char *()
const {
return str_.c_str(); }
38template <data_length_available S>
owned_cstring to_cstring(S &&
string) {
39 return std::string(
string.data(),
string.length());
Definition: cstring.hpp:10
Definition: cstring.hpp:21
Definition: cstring.hpp:15
Definition: cstring.hpp:7
Definition: cstring.hpp:29