54struct T_CharArray<std::basic_string_view<TChar>, TChar, typename std::enable_if<
55 TT_IsChar<TChar>::value >::type >
58 static constexpr AccessType Access = AccessType::Implicit;
60 static constexpr const TChar* Buffer (std::basic_string_view<TChar>
const & src) {
return src.data () ; }
61 static constexpr integer Length (std::basic_string_view<TChar>
const & src) {
return static_cast<integer>( src.length() ); }
62 static std::basic_string_view<TChar> Construct(
const TChar* array,
integer length ) {
return std::basic_string_view<TChar>( array,
size_t(length) ); }
76struct T_ZTCharArray<std::basic_string_view<TChar>, TChar, typename std::enable_if<
77 TT_IsChar<TChar>::value >::type >
80 static constexpr AccessType Access = AccessType::ExplicitOnly;
82 static constexpr const TChar* Buffer (std::basic_string_view<TChar>
const & src ) {
return src.data () ; }
83 static constexpr integer Length (std::basic_string_view<TChar>
const & src ) {
return static_cast<integer>( src.length() ); }
84 static std::basic_string_view<TChar> Construct(
const TChar* array,
integer length ) {
return std::basic_string_view<TChar>( array,
size_t(length) ); }
101struct T_CharArray<std::basic_string<TChar>, TChar, typename std::enable_if<
102 TT_IsChar<TChar>::value >::type >
105 static constexpr AccessType Access = AccessType::Implicit;
106 static constexpr ConstructionType Construction = ConstructionType::ExplicitOnly;
107 static constexpr const TChar* Buffer ( std::basic_string<TChar>
const & src ) {
return src.data () ; }
108 static constexpr integer Length ( std::basic_string<TChar>
const & src ) {
return static_cast<integer>( src.length() ); }
109 static constexpr std::basic_string<TChar> Construct(
const TChar* array,
integer length ) {
return std::basic_string<TChar>( array,
size_t(length) ); }
143struct T_ZTCharArray<std::basic_string<TChar>, TChar, typename std::enable_if<
144 TT_IsChar<TChar>::value >::type >
147 static constexpr AccessType Access = AccessType::Implicit;
148 static constexpr ConstructionType Construction = ConstructionType::ExplicitOnly;
149 static constexpr const TChar* Buffer ( std::basic_string<TChar>
const & src ) {
return src.data () ; }
150 static constexpr integer Length ( std::basic_string<TChar>
const & src ) {
return static_cast<integer>( src.length() ); }
151 static constexpr std::basic_string<TChar> Construct(
const TChar* array,
integer length ) {
return std::basic_string<TChar>( array,
size_t(length) ); }
166struct T_CharArray<std::vector<TChar>, TChar, typename std::enable_if<
167 TT_IsChar<TChar>::value >::type >
170 static constexpr AccessType Access = AccessType::Implicit;
171 static constexpr ConstructionType Construction = ConstructionType::ExplicitOnly;
172 static constexpr const TChar* Buffer (std::vector<TChar>
const & src) {
return src.data() ; }
173 static constexpr integer Length (std::vector<TChar>
const & src) {
return static_cast<integer>( src.size() ); }
175 static std::vector<TChar> Construct(
const TChar* array,
integer length )
177 std::vector<TChar> result;
178 result.reserve(
size_t(length) );
179 const TChar* end= array + length;
181 result.push_back( *array++ );
201 TT_IsChar<TChar>::value >::type >
204 static constexpr AccessType Access = AccessType::Implicit;
205 static constexpr ConstructionType Construction = ConstructionType::ExplicitOnly;
206 static constexpr const TChar* Buffer (std::vector<TChar>
const & src) {
return src.data() ; }
207 static constexpr integer Length (std::vector<TChar>
const & src) {
return static_cast<integer>( src.size() ); }
208 static constexpr std::vector<TChar> Construct(
const TChar* array,
integer length )
210 std::vector<TChar> result;
211 result.reserve(
size_t(length) );
212 const TChar* end= array + length;
214 result.push_back( *array++ );