| 
    cxxomfort
    rel.20210622
    
   Simple backports for C++ - http://ryan.gulix.cl/fossil.cgi/cxxomfort/ 
   | 
 
Read-only view of a string or string-like object, from C++17. See also string/basic_string_view @ cppreference .  
 More...
Public Types | |
| typedef CharTy | value_type | 
| Character type employed by the string.  | |
| typedef CTraits | traits_type | 
char_traits corresponding to the character type  | |
| typedef basetype::element_type | element_type | 
| Element type representing the underlying buffer view.  | |
| typedef basetype::size_type | size_type | 
| Type representing the amount of characters the string can have.  | |
| typedef basetype::difference_type | difference_type | 
| Integral type representing the difference between two iterators.  | |
| typedef CharTy * | pointer | 
| Pointer type for the underlying character storage.  | |
| typedef CharTy const * | const_pointer | 
Pointer type to a const view of the underlying character storage.  | |
| typedef CharTy & | reference | 
| Reference type for the underlying characters.  | |
| typedef CharTy const & | const_reference | 
Reference type to a const view of the underlying characters.  | |
| typedef const_pointer | const_iterator | 
| Iterator type.  | |
| typedef basetype::const_reverse_iterator | const_reverse_iterator | 
| Reverse iterator type.  | |
Public Member Functions | |
| constexpr | basic_string_view () noexcept=default | 
| default-ctor: empty string.  | |
| constexpr | basic_string_view (basic_string_view const &) noexcept=default | 
| copy-ctor  | |
| CXXO_CONSTEXPR | basic_string_view (CharTy const *px, size_t sz) CXXO_NOEXCEPTNOTHROW | 
string_view to characters at position px with length sz .  | |
| basic_string_view (const_pointer const px) CXXO_NOEXCEPTNOTHROW | |
string_view to characters at position px and length reported by CTraits::length .  | |
| template<typename IBegin , typename IEnd > | |
| basic_string_view (IBegin ini, IEnd fin) | |
| Iterator constructor, added in C++20.  | |
| CXXO_CONSTEXPR size_type | length () const CXXO_NOEXCEPTNOTHROW | 
| Returns the length of the viewed string.  | |
| const_reference | at (size_type idx) const | 
| Accesses characters in the string, checked.  | |
| size_type | copy (CharTy *d, size_type count, size_type pos=0) const | 
Copies contents from the viewed string to a CharTy array.  | |
| basic_string_view | substr (size_type pos, size_type count=npos) const | 
| Returns a view of part of the string.  | |
| int | compare (basic_string_view const r) const CXXO_NOEXCEPTNOTHROW | 
strcmp -like compare against another string view  | |
| CXXO_CONSTEXPR14 size_type | find (basic_string_view, size_type pos=0) const CXXO_NOEXCEPTNOTHROW | 
| Find a substring.  | |
| CXXO_CONSTEXPR14 size_type | find (CharTy const, size_type pos=0) const CXXO_NOEXCEPTNOTHROW | 
| Find a character.  | |
| size_type | find (const_pointer s, size_type pos=0) const CXXO_NOEXCEPTNOTHROW | 
| Find a substring.  | |
| size_type | find (const_pointer s, size_type pos, size_type count) const CXXO_NOEXCEPTNOTHROW | 
| Find a substring.  | |
| size_type | rfind (basic_string_view, size_type pos=0) const CXXO_NOEXCEPTNOTHROW | 
| Find last instance of a string.  | |
| size_type | rfind (CharTy, size_type pos=0) const CXXO_NOEXCEPTNOTHROW | 
| Find last instance of a character.  | |
| size_type | rfind (const_pointer s, size_type pos=0) const CXXO_NOEXCEPTNOTHROW | 
| Find last instance of a string.  | |
| size_type | rfind (const_pointer s, size_type pos, size_type count) const CXXO_NOEXCEPTNOTHROW | 
| Find last instance of a string.  | |
Static Public Attributes | |
| static const size_type | npos = size_type(-1) | 
| Flag that indicates a position not found.  | |
Additional Inherited Members | |
  Protected Types inherited from array_ref< T, IdxType > | |
| typedef T | element_type | 
| Type of the data contained in the view.  | |
| typedef std::remove_cv< element_type >::type | value_type | 
| Type of variables of the type of the pointed-to data.  | |
| typedef std::add_const< value_type >::type | const_value_type | 
const version of the value_type .  | |
| typedef ptrdiff_t | difference_type | 
| Type for the distance between pointers or iterators.  | |
| typedef IdxType | size_type | 
Type for subscript / indexed access (eg.: operator[]).  | |
| typedef std::add_pointer< element_type >::type | pointer | 
| Type of a pointer to a contained value; potentially writable.  | |
| typedef std::add_pointer< element_type const >::type | const_pointer | 
| Type of a pointer to a contained value; view-only.  | |
| typedef pointer | iterator | 
| Iterator type; potentially writable.  | |
| typedef const_pointer | const_iterator | 
| Iterator type; view-only.  | |
| typedef std::reverse_iterator< iterator > | reverse_iterator | 
| Reverse iterator type; potentially writable.  | |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator | 
| Reverse iterator type; view-only.  | |
  Protected Member Functions inherited from array_ref< T, IdxType > | |
| constexpr | array_ref () noexcept=default | 
| Trivial constructor; creates a view to nothing.  | |
| constexpr | array_ref (array_ref const &) noexcept=default | 
| Copy constructor (trivial)  | |
| constexpr array_ref & | operator= (array_ref const &) noexcept=default | 
| Assignment operator (trivial)  | |
| CXXO_CONSTEXPR | array_ref (pointer p, size_type len) CXXO_NOEXCEPTNOTHROW | 
| Construct a view to a buffer starting at p and of len units long.  | |
| CXXO_CONSTEXPR | array_ref (std::nullptr_t, pointer p, pointer q) CXXO_NOEXCEPTNOTHROW | 
| Construct a view to a buffer starting at p and ending at q (not in the original n3334 proposal).  | |
| template<size_t N> | |
| CXXO_CONSTEXPR | array_ref (T(&arr)[N]) CXXO_NOEXCEPTNOTHROW | 
| Constructs a view over a native C array.  | |
| reference | operator[] (size_type i) CXXO_NOEXCEPTNOTHROW | 
| Unchecked access to the i -th element.  | |
| CXXO_CONSTEXPR const_reference | operator[] (size_type i) const CXXO_NOEXCEPTNOTHROW | 
| Unchecked access to the i -th element.  | |
| reference | at (size_type i) | 
| Checked access to the i -th element; throw.  | |
| const_reference | at (size_type i) const | 
| Checked access to the i -th element; throw.  | |
| reference | at_or (size_type i, reference alt) CXXO_NOEXCEPTNOTHROW | 
| Checked access to the i -th element; returns an alternative if it doesn't exist.  | |
| CXXO_CONSTEXPR const_reference | at_or (size_type i, const_reference alt) const CXXO_NOEXCEPTNOTHROW | 
| Checked access to the i -th element; returns an alternative if it doesn't exist.  | |
| CXXO_CONSTEXPR size_type | size () const CXXO_NOEXCEPTNOTHROW | 
| CXXO_CONSTEXPR bool | empty () const CXXO_NOEXCEPTNOTHROW | 
| CXXO_CONSTEXPR14 pointer | data () CXXO_NOEXCEPTNOTHROW | 
| CXXO_CONSTEXPR const_pointer | data () const CXXO_NOEXCEPTNOTHROW | 
| CXXO_CONSTEXPR size_type | size_bytes () const CXXO_NOEXCEPTNOTHROW | 
| CXXO_CONSTEXPR const_iterator | cbegin () const CXXO_NOEXCEPTNOTHROW | 
| begin  | |
| CXXO_CONSTEXPR const_iterator | cend () const CXXO_NOEXCEPTNOTHROW | 
| end  | |
| iterator | begin () CXXO_NOEXCEPTNOTHROW | 
| begin  | |
| iterator | end () CXXO_NOEXCEPTNOTHROW | 
| end  | |
| CXXO_CONSTEXPR const_iterator | begin () const CXXO_NOEXCEPTNOTHROW | 
| begin  | |
| CXXO_CONSTEXPR const_iterator | end () const CXXO_NOEXCEPTNOTHROW | 
| end  | |
| CXXO_CONSTEXPR const_reverse_iterator | crbegin () const CXXO_NOEXCEPTNOTHROW | 
| reverse-begin  | |
| CXXO_CONSTEXPR const_reverse_iterator | crend () const CXXO_NOEXCEPTNOTHROW | 
| reverse-end  | |
| reverse_iterator | rbegin () CXXO_NOEXCEPTNOTHROW | 
| reverse-begin  | |
| reverse_iterator | rend () CXXO_NOEXCEPTNOTHROW | 
| reverse-end  | |
| const_reverse_iterator | rbegin () const CXXO_NOEXCEPTNOTHROW | 
| reverse-begin  | |
| const_reverse_iterator | rend () const CXXO_NOEXCEPTNOTHROW | 
| reverse-end  | |
| const_iterator | front () const CXXO_NOEXCEPTNOTHROW | 
| Unchecked (!) access to the 0th element.  | |
| iterator | front () CXXO_NOEXCEPTNOTHROW | 
| Unchecked (!) access to the 0th element.  | |
| const_iterator | back () const CXXO_NOEXCEPTNOTHROW | 
| Unchecked (!) access to the last element.  | |
| iterator | back () CXXO_NOEXCEPTNOTHROW | 
| Unchecked (!) access to the last element.  | |
| CXXO_CONSTEXPR array_ref | substr (size_type pos, size_type count) const | 
| Returns a view to the count -elements subsequence starting from pos .  | |
| array_ref | substr (size_type pos) const | 
| array_ref | leftmost (size_type n) const CXXO_NOEXCEPTNOTHROW | 
| Returns a view to the leftmost (first) n elements.  | |
| array_ref | rightmost (size_type n) const CXXO_NOEXCEPTNOTHROW | 
| Returns a view to the rightmost (last) n elements.  | |
| array_ref | slice (difference_type pos, size_type count) const | 
| Returns a view of sub-contents from position pos which can be negative, ala PHP, JS.  | |
| array_ref | slice (difference_type pos) const | 
| array_ref | without_back_n (size_type n) const | 
| Removes the last n elements.  | |
| array_ref | without_front_n (size_type n) const | 
| Removes the first n elements.  | |
| array_ref | without_back () const | 
| Returns a view with the last element removed.  | |
| array_ref | without_front () const | 
| Returns a view with the first element removed.  | |
Read-only view of a string or string-like object, from C++17. See also string/basic_string_view @ cppreference . 
A basic_string_view is a view (non-owning) to a buffer of characters representing a string object, and given a set of operations.
Cxxomfort's basic_string_view has a number of differences from the std version in C++17 onwards, documented here for clarity. Largely the differences lie in the member functions, as cxxomfort intentionally chooses to not implement the hundreditude of member functions that std::basic_string_view inherits from the bad design of std::basic_string .
Compared to the std version, the cxxomfort implementation:
element_type member type equivalent to std::span 's  element_type CharTy[N] for C++<11std::basic_string for C++<17, to supplement the conversion operator in std::basic_string post-C++17 that can not be injected in previous versionsat_or() method that returns an alternative value instead of throwing an exception, when the index is out of bounds. (This is inherited from array_ref )remove_prefix() and remove_suffix() starts_with() and end_with() from C++20, leaving them instead to the global accessors in cxxomfort/string.hpp contains() from C++23.Cxxomfort also offers the helper sv_helper in order to construct basic_string_view s easily; and starting with C++11 it implements the ""sv user-defined literal as well.
 1.8.13