# Standard library header <experimental/string_view>

From cppreference.com
< cpp‎ | header

This header is part of the experimental library.

### Classes

Name | Description
std::experimental::basic_string_view (library fundamentals TS) | Class template representing a reference to a character string (class template)
std::experimental::string_view (library fundamentals TS) | std::experimental::basic_string_view<char> (typedef)
std::experimental::wstring_view (library fundamentals TS) | std::experimental::basic_string_view<wchar_t> (typedef)
std::experimental::u16string_view (library fundamentals TS) | std::experimental::basic_string_view<char16_t> (typedef)
std::experimental::u32string_view (library fundamentals TS) | std::experimental::basic_string_view<char32_t> (typedef)
std::hash<std::experimental::string_view> (library fundamentals TS) | (class template specialization)
std::hash<std::experimental::u16string_view> (library fundamentals TS) | (class template specialization)
std::hash<std::experimental::u32string_view> (library fundamentals TS) | (class template specialization)
std::hash<std::experimental::wstring_view> (library fundamentals TS) | (class template specialization)

### Functions

operator==operator!=operator<operator>operator<=operator>= | lexicographically compares two views (function template)
##### Output
operator<< | performs stream output on views (function template)

### Synopsis

    namespace std {
      namespace experimental {
      inline namespace fundamentals_v1 {

        // 7.2, Class template basic_string_view
        template<class charT, class traits = char_traits<charT>>
            class basic_string_view;

        // 7.9, basic_string_view non-member comparison functions
        template<class charT, class traits>
        constexpr bool operator==(basic_string_view<charT, traits> x,
                                  basic_string_view<charT, traits> y) noexcept;
        template<class charT, class traits>
        constexpr bool operator!=(basic_string_view<charT, traits> x,
                                  basic_string_view<charT, traits> y) noexcept;
        template<class charT, class traits>
        constexpr bool operator< (basic_string_view<charT, traits> x,
                                     basic_string_view<charT, traits> y) noexcept;
        template<class charT, class traits>
        constexpr bool operator> (basic_string_view<charT, traits> x,
                                  basic_string_view<charT, traits> y) noexcept;
        template<class charT, class traits>
        constexpr bool operator<=(basic_string_view<charT, traits> x,
                                     basic_string_view<charT, traits> y) noexcept;
        template<class charT, class traits>
        constexpr bool operator>=(basic_string_view<charT, traits> x,
                                  basic_string_view<charT, traits> y) noexcept;
        // see below, sufficient additional overloads of comparison functions

        // 7.10, Inserters and extractors
        template<class charT, class traits>
          basic_ostream<charT, traits>&
            operator<<(basic_ostream<charT, traits>& os,
                       basic_string_view<charT, traits> str);

        // basic_string_view typedef names
        typedef basic_string_view<char> string_view;
        typedef basic_string_view<char16_t> u16string_view;
        typedef basic_string_view<char32_t> u32string_view;
        typedef basic_string_view<wchar_t> wstring_view;

      }  // namespace fundamentals_v1
      }  // namespace experimental

      // 7.11, Hash support
      template <class T> struct hash;
      template <> struct hash<experimental::string_view>;
      template <> struct hash<experimental::u16string_view>;
      template <> struct hash<experimental::u32string_view>;
      template <> struct hash<experimental::wstring_view>;

    }  // namespace std

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/header/experimental/string_view&oldid=71500"