14 #include "jasl/jasl_internal/jasl_feature_test_macro.hpp" 15 #include "jasl/jasl_internal/jasl_string_view_bridge.hpp" 35 template <
typename CharT,
class Traits = std::
char_traits<CharT>>
45 std::is_nothrow_constructible<bridge_type, const bridge_type&>::value)
50 std::is_nothrow_constructible<bridge_type>::value)
55 std::is_nothrow_constructible<bridge_type, const CharT*, size_t>::value)
59 std::is_nothrow_constructible<bridge_type, const bridge_type&>::value)
60 :
bridge_type(static_cast<const bridge_type&>(other)) {}
63 std::is_nothrow_destructible<bridge_type>::value) =
default;
67 const CharT (&str)[N]) noexcept(bridge_type::is_nothrow_settable) {
68 bridge_type::set(str, str[N - 1] == 0 ? N - 1 : N);
74 std::is_nothrow_assignable<bridge_type, const bridge_type&>::value) {
75 bridge_type::operator=(static_cast<const bridge_type&>(other));
79 #if defined(JASL_SUPPORT_JASL_TO_STD) 80 # if defined(JASL_cpp_lib_string_view) 81 operator std::basic_string_view<CharT, Traits>()
const noexcept(
82 std::is_nothrow_constructible<std::basic_string_view<CharT, Traits>,
85 return std::basic_string_view<CharT, Traits>(bridge_type::data(),
89 template <
typename AllocatorT>
90 operator std::basic_string<CharT, Traits, AllocatorT>()
const 91 noexcept(std::is_nothrow_constructible<
92 std::basic_string<CharT, Traits, AllocatorT>,
95 return std::basic_string<CharT, Traits, AllocatorT>(bridge_type::data(),
103 bridge_type::swap(other);
107 typename bridge_type::size_type pos,
108 typename bridge_type::size_type count = bridge_type::npos)
const {
113 template <
typename CharT,
typename Traits>
120 typedef basic_static_string<char> static_string;
121 typedef basic_static_string<wchar_t> static_wstring;
122 typedef basic_static_string<char16_t> static_u16string;
123 typedef basic_static_string<char32_t> static_u32string;
Definition: jasl_static_string.hpp:18
Definition: jasl_string_view_bridge.hpp:17
Definition: jasl_static_string.hpp:36
Definition: jasl_string_view.hpp:24