rttr::basic_string_view< CharT, Traits > Class Template - 0.9.7 |RTTR
  • rttr::basic_string_view< CharT, Traits > Class Template
rttr::basic_string_view< CharT, Traits > Class Template Reference

The class template basic_string_view describes an non-owning reference to a constant contiguous sequence of char-like objects. More...

#include <string_view.h>

Public Types

 
using  const_pointer = const CharT *
 
using  const_reference = const CharT &
 
using  const_reverse_iterator = std::reverse_iterator< const_iterator >
 
using  difference_type = std::ptrdiff_t
 
 
using  pointer = CharT *
 
using  reference = CharT &
 
 
using  size_type = std::size_t
 
using  traits_type = Traits
 
using  value_type = CharT
 

Public Member Functions

constexpr  basic_string_view () noexcept
  Default constructor. More...
 
constexpr  basic_string_view (const basic_string_view &other) noexcept
  Copy constructor. More...
 
constexpr  basic_string_view (const CharT *str)
  Constructs a view of the null-terminated character string pointed to by str, not including the terminating null character. More...
 
constexpr  basic_string_view (const CharT *str, size_type len)
  Constructs a view of the first count characters of the character array starting with the element pointed by str. More...
 
template<typename Allocator >
  basic_string_view (const std::basic_string< CharT, Traits, Allocator > &str) noexcept
  Constructs a view of the first str.size() characters of the character array starting with the element pointed by str.data(). More...
 
constexpr const_reference  back () const
  Returns reference to the last character in the view. More...
 
constexpr const_iterator  begin () const noexcept
  Returns an iterator to the beginning of the view. More...
 
constexpr const_iterator  cbegin () const noexcept
  Returns an iterator to the beginning of the view. More...
 
constexpr const_iterator  cend () const noexcept
  Returns an iterator to the character following the last character of the view. More...
 
constexpr int  compare (basic_string_view v) const noexcept
  The function compares the two views by calling Traits::compare(data(), v.data(), length), where length is the small of size() and v.size(). More...
 
constexpr int  compare (const CharT *c) const noexcept
  Equivalent to compare(basic_string_view(c)). More...
 
const_reverse_iterator  crbegin () const noexcept
  Returns a reverse iterator to the first character of the reversed view. More...
 
const_reverse_iterator  crend () const noexcept
  Returns a reverse iterator to the character following the last character of the reversed view. More...
 
constexpr const_pointer  data () const noexcept
  Returns a pointer to the underlying character array. More...
 
constexpr bool  empty () const noexcept
  Checks if the view has no characters, i.e. More...
 
constexpr const_iterator  end () const noexcept
  Returns an iterator to the character following the last character of the view. More...
 
constexpr const_reference  front () const
  Returns reference to the first character in the view. More...
 
constexpr size_type  length () const noexcept
  Returns the number of CharT elements in the view, i.e. More...
 
constexpr size_type  max_size () const noexcept
  The largest possible number of char-like objects that can be referred to by a basic_string_view. More...
 
template<typename Allocator >
  Creates a basic_string with a copy of the content of the current view. More...
 
basic_string_viewoperator= (const basic_string_view &other) noexcept
  Replaces the this view with that of other view. More...
 
constexpr const_reference  operator[] (size_type pos) const noexcept
  Returns a const reference to the character at specified location pos. More...
 
const_reverse_iterator  rbegin () const noexcept
  Returns a reverse iterator to the first character of the reversed view. More...
 
constexpr void  remove_prefix (size_type n) noexcept
  Moves the start of the view forward by n characters. More...
 
constexpr void  remove_suffix (size_type n) noexcept
  Moves the end of the view back by n characters. More...
 
const_reverse_iterator  rend () const noexcept
  Returns a reverse iterator to the character following the last character of the reversed view. More...
 
constexpr size_type  size () const noexcept
  Returns the number of CharT elements in the view, i.e. More...
 
constexpr void  swap (basic_string_view &s) noexcept
 
template<typename Allocator = std::allocator<CharT>>
std::basic_string< CharT, Traits >  to_string (const Allocator &a=Allocator()) const
  Creates a basic_string with a copy of the content of the current view. More...
 

Static Public Attributes

static size_type  npos = size_type(-1)
 

Detailed Description

template<typename CharT, typename Traits = std::char_traits<CharT>>
class rttr::basic_string_view< CharT, Traits >

The class template basic_string_view describes an non-owning reference to a constant contiguous sequence of char-like objects.

The purpose of this class is to avoid copying of data which is already owned somewhere else. Creating a basic_string_view will never do any heap allocation.

Member Typedef Documentation

template<typename CharT , typename Traits = std::char_traits<CharT>>
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::const_pointer = const CharT*
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::const_reference = const CharT&
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::const_reverse_iterator = std::reverse_iterator<const_iterator>
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::difference_type = std::ptrdiff_t
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::iterator = const_iterator
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::pointer = CharT*
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::reference = CharT&
template<typename CharT , typename Traits = std::char_traits<CharT>>
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::size_type = std::size_t
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::traits_type = Traits
template<typename CharT , typename Traits = std::char_traits<CharT>>
using rttr::basic_string_view< CharT, Traits >::value_type = CharT

Constructor & Destructor Documentation

template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr rttr::basic_string_view< CharT, Traits >::basic_string_view ( )
noexcept

Default constructor.

Constructs an empty basic_string_view.

template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr rttr::basic_string_view< CharT, Traits >::basic_string_view ( const basic_string_view< CharT, Traits > &  other )
noexcept

Copy constructor.

Constructs a view of the same content as other.

template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr rttr::basic_string_view< CharT, Traits >::basic_string_view ( const CharT *  str )

Constructs a view of the null-terminated character string pointed to by str, not including the terminating null character.

The length of the view is determined as if by Traits::length(str). The behavior is undefined if [str, str + Traits::length(str)) is not a valid range (even though the constructor may not access any of the elements of this range).

template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr rttr::basic_string_view< CharT, Traits >::basic_string_view ( const CharT *  str,
size_type  len 
)

Constructs a view of the first count characters of the character array starting with the element pointed by str.

str can contain null characters. The behavior is undefined if [str, str + count) is not a valid range (even though the constructor may not access any of the elements of this range).

template<typename CharT , typename Traits = std::char_traits<CharT>>
template<typename Allocator >
rttr::basic_string_view< CharT, Traits >::basic_string_view ( const std::basic_string< CharT, Traits, Allocator > &  str )
noexcept

Constructs a view of the first str.size() characters of the character array starting with the element pointed by str.data().

Member Function Documentation

template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr const_reference rttr::basic_string_view< CharT, Traits >::back ( ) const

Returns reference to the last character in the view.

Returns
Reference to the last character, equivalent to operator[](size() - 1).
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr const_iterator rttr::basic_string_view< CharT, Traits >::begin ( ) const
noexcept

Returns an iterator to the beginning of the view.

Returns
const_iterator to the first character of this view.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr const_iterator rttr::basic_string_view< CharT, Traits >::cbegin ( ) const
noexcept

Returns an iterator to the beginning of the view.

Returns
const_iterator to the first character of this view.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr const_iterator rttr::basic_string_view< CharT, Traits >::cend ( ) const
noexcept

Returns an iterator to the character following the last character of the view.

Do not access this character, it will result in undefined behavior.

Returns
const_iterator to the character following the last character.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr int rttr::basic_string_view< CharT, Traits >::compare ( basic_string_view< CharT, Traits >  v ) const
noexcept

The function compares the two views by calling Traits::compare(data(), v.data(), length), where length is the small of size() and v.size().

Returns
negative value if this view is less than the other character sequence, zero if the both character sequences are equal, positive value if this view is greater than the other character sequence.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr int rttr::basic_string_view< CharT, Traits >::compare ( const CharT *  c ) const
noexcept

Equivalent to compare(basic_string_view(c)).

Returns
negative value if this view is less than the other character sequence, zero if the both character sequences are equal, positive value if this view is greater than the other character sequence.
template<typename CharT , typename Traits = std::char_traits<CharT>>
const_reverse_iterator rttr::basic_string_view< CharT, Traits >::crbegin ( ) const
noexcept

Returns a reverse iterator to the first character of the reversed view.

It corresponds to the last character of the non-reversed view.

Returns
const_reverse_iterator to the first character.
template<typename CharT , typename Traits = std::char_traits<CharT>>
const_reverse_iterator rttr::basic_string_view< CharT, Traits >::crend ( ) const
noexcept

Returns a reverse iterator to the character following the last character of the reversed view.

It corresponds to the character preceding the first character of the non-reversed view. Do not access this character, it will result in undefined behavior.

Returns
const_reverse_iterator to the character following the last character.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr const_pointer rttr::basic_string_view< CharT, Traits >::data ( ) const
noexcept

Returns a pointer to the underlying character array.

The pointer is such that the range [data(); data() + size()) is valid and the values in it correspond to the values of the view.

Remarks
Passing data() to a function which takes a const CharT* may not work, because the underlying buffer may not contain a null-terminated character.
Returns
A pointer to the underlying character array.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr bool rttr::basic_string_view< CharT, Traits >::empty ( ) const
noexcept

Checks if the view has no characters, i.e.

whether size() == 0.

Returns
true if the view is empty, false otherwise.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr const_iterator rttr::basic_string_view< CharT, Traits >::end ( ) const
noexcept

Returns an iterator to the character following the last character of the view.

Do not access this character, it will result in undefined behavior.

Returns
const_iterator to the character following the last character.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr const_reference rttr::basic_string_view< CharT, Traits >::front ( ) const

Returns reference to the first character in the view.

Returns
Reference to the first character, equivalent to operator[](0).
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr size_type rttr::basic_string_view< CharT, Traits >::length ( ) const
noexcept

Returns the number of CharT elements in the view, i.e.

std::distance(begin(), end()).

Returns
The number of CharT elements in the view.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr size_type rttr::basic_string_view< CharT, Traits >::max_size ( ) const
noexcept

The largest possible number of char-like objects that can be referred to by a basic_string_view.

Returns
Maximum number of characters.
template<typename CharT , typename Traits = std::char_traits<CharT>>
template<typename Allocator >
rttr::basic_string_view< CharT, Traits >::operator std::basic_string< CharT, Traits, Allocator > ( ) const
explicit

Creates a basic_string with a copy of the content of the current view.

Returns
A basic_string containing a copy of the characters of the current view.
template<typename CharT , typename Traits = std::char_traits<CharT>>
basic_string_view& rttr::basic_string_view< CharT, Traits >::operator= ( const basic_string_view< CharT, Traits > &  other )
noexcept

Replaces the this view with that of other view.

template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr const_reference rttr::basic_string_view< CharT, Traits >::operator[] ( size_type  pos ) const
noexcept

Returns a const reference to the character at specified location pos.

No bounds checking is performed: the behavior is undefined if pos >= size() .

Returns
Const reference to the requested character.
template<typename CharT , typename Traits = std::char_traits<CharT>>
const_reverse_iterator rttr::basic_string_view< CharT, Traits >::rbegin ( ) const
noexcept

Returns a reverse iterator to the first character of the reversed view.

It corresponds to the last character of the non-reversed view.

Returns
const_reverse_iterator to the first character.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr void rttr::basic_string_view< CharT, Traits >::remove_prefix ( size_type  n )
noexcept

Moves the start of the view forward by n characters.

The behavior is undefined if n > size() .

template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr void rttr::basic_string_view< CharT, Traits >::remove_suffix ( size_type  n )
noexcept

Moves the end of the view back by n characters.

The behavior is undefined if n > size() .

template<typename CharT , typename Traits = std::char_traits<CharT>>
const_reverse_iterator rttr::basic_string_view< CharT, Traits >::rend ( ) const
noexcept

Returns a reverse iterator to the character following the last character of the reversed view.

It corresponds to the character preceding the first character of the non-reversed view. Do not access this character, it will result in undefined behavior.

Returns
const_reverse_iterator to the character following the last character.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr size_type rttr::basic_string_view< CharT, Traits >::size ( ) const
noexcept

Returns the number of CharT elements in the view, i.e.

std::distance(begin(), end()).

Returns
The number of CharT elements in the view.
template<typename CharT , typename Traits = std::char_traits<CharT>>
constexpr void rttr::basic_string_view< CharT, Traits >::swap ( basic_string_view< CharT, Traits > &  s )
noexcept
template<typename CharT , typename Traits = std::char_traits<CharT>>
template<typename Allocator = std::allocator<CharT>>
std::basic_string<CharT, Traits> rttr::basic_string_view< CharT, Traits >::to_string ( const Allocator &  a = Allocator() ) const

Creates a basic_string with a copy of the content of the current view.

Returns
A basic_string containing a copy of the characters of the current view.

Member Data Documentation

template<typename CharT , typename Traits = std::char_traits<CharT>>
size_type rttr::basic_string_view< CharT, Traits >::npos = size_type(-1)
static

The documentation for this class was generated from the following file:

AltStyle によって変換されたページ (->オリジナル) /