void test ( const CharT *s ) { typedef std::basic_string<CharT> String ; { std::experimental::basic_string_view<CharT> sv1 ( s ); String str1 = (String) sv1; assert ( sv1.size() == str1.size ()); assert ( std::char_traits<CharT>::compare ( sv1.data(), str1.data(), sv1.size()) == 0 ); #if __cplusplus >= 201103L auto str2 = sv1.to_string(min_allocator<CharT>()); assert ( sv1.size() == str2.size ()); assert ( std::char_traits<CharT>::compare ( sv1.data(), str2.data(), sv1.size()) == 0 ); #endif } { std::experimental::basic_string_view<CharT> sv1; String str1 = (String) sv1; assert ( sv1.size() == str1.size ()); assert ( std::char_traits<CharT>::compare ( sv1.data(), str1.data(), sv1.size()) == 0 ); #if __cplusplus >= 201103L auto str2 = sv1.to_string(min_allocator<CharT>()); assert ( sv1.size() == str2.size ()); assert ( std::char_traits<CharT>::compare ( sv1.data(), str2.data(), sv1.size()) == 0 ); #endif } }
void test ( const CharT *s, size_t sz ) { { std::experimental::basic_string_view<CharT> sv1 ( s, sz ); assert ( sv1.size() == sz ); assert ( sv1.data() == s ); } }
void test( const CharT *s1, size_t pos1, size_t n1, const CharT *s2, int expected) { typedef std::experimental::basic_string_view<CharT> string_view_t; string_view_t sv1 ( s1 ); test1 ( sv1, pos1, n1, s2, expected ); }
void test ( const CharT *s ) { typedef std::basic_string_view<CharT> SV; // I'd love to do this, but it would require traits::length() to be noexcept // LIBCPP_ASSERT_NOEXCEPT(SV(s)); SV sv1 ( s ); assert ( sv1.size() == StrLen( s )); assert ( sv1.data() == s ); }
void test2 ( const CharT *s, size_t len ) { { std::basic_string_view<CharT> sv1 ( s ); assert ( sv1.size() == len ); assert ( sv1.data() == s ); assert ( sv1.empty() == (len == 0)); assert ( sv1.size() == sv1.length()); assert ( sv1.max_size() > sv1.size()); } }
int main () { using string_view = std::experimental::basic_string_view<char, dummy_char_traits>; using string = std:: basic_string <char>; { string s{"QBCDE"}; string_view sv1 ( s ); assert ( sv1.size() == s.size()); assert ( sv1.data() == s.data()); } }
void test ( const CharT *s, size_t len ) { typedef std::experimental::basic_string_view<CharT> SV; { SV sv1(s); SV sv2; assert ( sv1.size() == len ); assert ( sv1.data() == s ); assert ( sv2.size() == 0 ); sv1.swap ( sv2 ); assert ( sv1.size() == 0 ); assert ( sv2.size() == len ); assert ( sv2.data() == s ); } }
void test ( const CharT *s, size_t len ) { typedef std::experimental::basic_string_view<CharT> SV; { SV sv1 ( s ); assert ( sv1.size() == len ); assert ( sv1.data() == s ); if ( len > 0 ) { sv1.remove_prefix ( 1 ); assert ( sv1.size() == (len - 1)); assert ( sv1.data() == (s + 1)); sv1.remove_prefix ( len - 1 ); } assert ( sv1.size() == 0 ); sv1.remove_prefix ( 0 ); assert ( sv1.size() == 0 ); } }
matrix2d<T> matrix2d<T>::appendCols(matrix2d<T> &m) { matrix2d<T> result(rows_, cols_ + m.cols_); std::size_t s1[] = {rows_,cols_}; // shape of left matrix std::size_t p1[] = {result.cols_,1}; // position of left matrix in result std::size_t s2[] = {m.rows_,m.cols_}; // shape of right matrix std::size_t p2[] = {result.cols_,1}; // position or right matrix in result std::valarray<std::size_t> sv1(s1, 2); std::valarray<std::size_t> pv1(p1, 2); std::valarray<std::size_t> sv2(s2, 2); std::valarray<std::size_t> pv2(p2, 2); result.data_[std::gslice(0, sv1, pv1)] = data_; // copy left matrix into place result.data_[std::gslice(cols_, sv2, pv2)] = m.data_; // repeat for m return result; }
void test ( const CharT *s ) { typedef std::experimental::basic_string_view<CharT> string_view_t; string_view_t sv1 ( s ); test1(sv1, 0, 0); test1(sv1, 1, 0); test1(sv1, 20, 0); test1(sv1, sv1.size(), 0); test1(sv1, 0, 3); test1(sv1, 2, 3); test1(sv1, 100, 3); test1(sv1, 0, string_view_t::npos); test1(sv1, 2, string_view_t::npos); test1(sv1, sv1.size(), string_view_t::npos); test1(sv1, sv1.size() + 1, 0); test1(sv1, sv1.size() + 1, 1); test1(sv1, sv1.size() + 1, string_view_t::npos); }
void test ( const CharT *s ) { std::experimental::basic_string_view<CharT> sv1 ( s ); assert ( sv1.size() == StrLen( s )); assert ( sv1.data() == s ); }
void test ( const std::basic_string<CharT, Traits> &str ) { std::basic_string_view<CharT, Traits> sv1 ( str ); assert ( sv1.size() == str.size()); assert ( sv1.data() == str.data()); }
static void run_tests () { capacity_1::main (); cons_1::main (); cons_2::main (); cons_3::main (); element_access_1::main (); element_access_empty::main (); element_access_front_back::main (); inserters_2::main (); modifiers_remove_prefix::main (); modifiers_remove_suffix::main (); modifiers_swap::test01 (); operations_compare_1::main (); operations_compare_13650::main (); operations_copy_1::main (); operations_data_1::main (); operations_find_1::main (); operations_find_2::main (); operations_find_3::main (); operations_find_4::main (); operations_rfind_1::main (); operations_rfind_2::main (); operations_rfind_3::main (); operations_substr_1::main (); operators_2::main (); constexpr gdb::string_view sv_empty; SELF_CHECK (sv_empty.empty ()); std::string std_string = "fika"; gdb::string_view sv1 (std_string); SELF_CHECK (sv1 == "fika"); constexpr const char *fika = "fika"; gdb::string_view sv2 (fika); SELF_CHECK (sv2 == "fika"); constexpr gdb::string_view sv3 (fika, 3); SELF_CHECK (sv3 == "fik"); constexpr gdb::string_view sv4 (sv3); SELF_CHECK (sv4 == "fik"); constexpr gdb::string_view::iterator it_begin = sv4.begin (); static_assert (*it_begin == 'f', ""); constexpr gdb::string_view::iterator it_end = sv4.end (); static_assert (*it_end == 'a', ""); const gdb::string_view::reverse_iterator it_rbegin = sv4.rbegin (); SELF_CHECK (*it_rbegin == 'k'); const gdb::string_view::reverse_iterator it_rend = sv4.rend (); SELF_CHECK (*(it_rend - 1) == 'f'); constexpr gdb::string_view::size_type size = sv4.size (); static_assert (size == 3, ""); constexpr gdb::string_view::size_type length = sv4.length (); static_assert (length == 3, ""); constexpr gdb::string_view::size_type max_size = sv4.max_size (); static_assert (max_size > 0, ""); constexpr bool empty = sv4.empty (); static_assert (!empty, ""); constexpr char c1 = sv4[1]; static_assert (c1 == 'i', ""); constexpr char c2 = sv4.at (2); static_assert (c2 == 'k', ""); constexpr char front = sv4.front (); static_assert (front == 'f', ""); constexpr char back = sv4.back (); static_assert (back == 'k', ""); constexpr const char *data = sv4.data (); static_assert (data == fika, ""); }