2
3
4
5
6
7
8
11#ifndef _MSTD_STRING_UTILS_HPP_
12 #define _MSTD_STRING_UTILS_HPP_
14 #include <mstd/config.hpp>
17_MSTD_WARNING(
"this is only available for c++17 and greater!");
20 #include <mstd/string_libs.hpp>
23 template<
class T,
class =
void>
28 std::enable_if_t<std::is_same_v<std::remove_cv_t<T>,
char> || std::is_same_v<std::remove_cv_t<T>,
signed char> ||
29 std::is_same_v<std::remove_cv_t<T>,
unsigned char> > > {
33 template<
class T, size_t N>
35 std::enable_if_t<std::is_same_v<std::remove_cv_t<T>,
char> || std::is_same_v<std::remove_cv_t<T>,
signed char> ||
36 std::is_same_v<std::remove_cv_t<T>,
unsigned char> > > {
42 std::enable_if_t<std::is_pointer_v<T> && (std::is_same_v<std::remove_cv_t<std::remove_pointer_t<T> >,
char> ||
43 std::is_same_v<std::remove_cv_t<std::remove_pointer_t<T> >,
signed char> ||
44 std::is_same_v<std::remove_cv_t<std::remove_pointer_t<T> >,
unsigned char>)> > {
49 struct string_type_info<T, std::enable_if_t<std::is_same_v<std::remove_cv_t<T>, std::string> > > {
58 template<
class String>
#define _MSTD_HAS_CXX17
Definition config.hpp:45
#define _MSTD_CONSTEXPR17
Definition config.hpp:76
Definition function_traits.hpp:23
_MSTD_CONSTEXPR17 size_t string_size(String &&s)
Definition string_utils.hpp:59
Definition arithmetic_types.hpp:23
Definition string_utils.hpp:44
static _MSTD_CONSTEXPR17 size_t size(T s)
Definition string_utils.hpp:45
Definition string_utils.hpp:29
static _MSTD_CONSTEXPR17 size_t size(const T &)
Definition string_utils.hpp:30
Definition string_utils.hpp:49
static _MSTD_CONSTEXPR17 size_t size(const std::string &s)
Definition string_utils.hpp:50
Definition string_utils.hpp:36
static _MSTD_CONSTEXPR17 size_t size(const T(&)[N])
Definition string_utils.hpp:37
Definition string_utils.hpp:24