Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for a snapshot of the master branch, built from commit 91e973eebc.
PrevUpHomeNext

Class template basic_string_view

boost::basic_string_view

Synopsis

// In header: <boost/utility/string_view.hpp>

template<typename charT, typename traits> 
class basic_string_view {
public:
  // types
  typedef traits                                  traits_type;           
  typedef charT                                   value_type;            
  typedef charT *                                 pointer;               
  typedef const charT *                           const_pointer;         
  typedef charT &                                 reference;             
  typedef const charT &                           const_reference;       
  typedef const_pointer                           const_iterator;        
  typedef const_iterator                          iterator;              
  typedef std::reverse_iterator< const_iterator > const_reverse_iterator;
  typedef const_reverse_iterator                  reverse_iterator;      
  typedef std::size_t                             size_type;             
  typedef std::ptrdiff_t                          difference_type;       

  // construct/copy/destruct
  basic_string_view() noexcept;
  basic_string_view(const basic_string_view &);
  template<typename Allocator> 
    basic_string_view(const std::basic_string< charT, traits, Allocator > &) noexcept;
  basic_string_view(const charT *);
  basic_string_view(const charT *, size_type);
  basic_string_view & operator=(const basic_string_view &);

  // public member functions
  constexpr const_iterator begin() const noexcept;
  constexpr const_iterator cbegin() const noexcept;
  constexpr const_iterator end() const noexcept;
  constexpr const_iterator cend() const noexcept;
  const_reverse_iterator rbegin() const noexcept;
  const_reverse_iterator crbegin() const noexcept;
  const_reverse_iterator rend() const noexcept;
  const_reverse_iterator crend() const noexcept;
  constexpr size_type size() const noexcept;
  constexpr size_type length() const noexcept;
  constexpr size_type max_size() const noexcept;
  constexpr bool empty() const noexcept;
  constexpr const_reference operator[](size_type) const noexcept;
  constexpr const_reference at(size_t) const;
  constexpr const_reference front() const;
  constexpr const_reference back() const;
  constexpr const_pointer data() const noexcept;
  void clear() noexcept;
  constexpr void remove_prefix(size_type);
  constexpr void remove_suffix(size_type);
  constexpr void swap(basic_string_view &) noexcept;
  template<typename Allocator> 
    explicit operator std::basic_string< charT, traits, Allocator >() const;
  template<typename Allocator = std::allocator<charT> > 
    std::basic_string< charT, traits, Allocator > 
    to_string(const Allocator & = Allocator()) const;
  size_type copy(charT *, size_type, size_type = 0) const;
  constexpr basic_string_view substr(size_type, size_type = npos) const;
  constexpr int compare(basic_string_view) const noexcept;
  constexpr int 
  compare(size_type, size_type, basic_string_view) const noexcept;
  constexpr int 
  compare(size_type, size_type, basic_string_view, size_type, size_type) const;
  constexpr int compare(const charT *) const;
  constexpr int compare(size_type, size_type, const charT *) const;
  constexpr int compare(size_type, size_type, const charT *, size_type) const;
  constexpr bool starts_with(charT) const noexcept;
  constexpr bool starts_with(basic_string_view) const noexcept;
  constexpr bool ends_with(charT) const noexcept;
  constexpr bool ends_with(basic_string_view) const noexcept;
  constexpr size_type find(basic_string_view, size_type = 0) const noexcept;
  constexpr size_type find(charT, size_type = 0) const noexcept;
  constexpr size_type find(const charT *, size_type, size_type) const noexcept;
  constexpr size_type find(const charT *, size_type = 0) const noexcept;
  constexpr size_type 
  rfind(basic_string_view, size_type = npos) const noexcept;
  constexpr size_type rfind(charT, size_type = npos) const noexcept;
  constexpr size_type 
  rfind(const charT *, size_type, size_type) const noexcept;
  constexpr size_type rfind(const charT *, size_type = npos) const noexcept;
  constexpr size_type 
  find_first_of(basic_string_view, size_type = 0) const noexcept;
  constexpr size_type find_first_of(charT, size_type = 0) const noexcept;
  constexpr size_type 
  find_first_of(const charT *, size_type, size_type) const noexcept;
  constexpr size_type 
  find_first_of(const charT *, size_type = 0) const noexcept;
  constexpr size_type 
  find_last_of(basic_string_view, size_type = npos) const noexcept;
  constexpr size_type find_last_of(charT, size_type = npos) const noexcept;
  constexpr size_type 
  find_last_of(const charT *, size_type, size_type) const noexcept;
  constexpr size_type 
  find_last_of(const charT *, size_type = npos) const noexcept;
  constexpr size_type 
  find_first_not_of(basic_string_view, size_type = 0) const noexcept;
  constexpr size_type find_first_not_of(charT, size_type = 0) const noexcept;
  constexpr size_type 
  find_first_not_of(const charT *, size_type, size_type) const noexcept;
  constexpr size_type 
  find_first_not_of(const charT *, size_type = 0) const noexcept;
  constexpr size_type 
  find_last_not_of(basic_string_view, size_type = npos) const noexcept;
  constexpr size_type find_last_not_of(charT, size_type = npos) const noexcept;
  constexpr size_type 
  find_last_not_of(const charT *, size_type, size_type) const noexcept;
  constexpr size_type 
  find_last_not_of(const charT *, size_type = npos) const noexcept;

  // private member functions
  template<typename r_iter> 
    size_type reverse_distance(r_iter, r_iter) const noexcept;
  template<typename Iterator> 
    Iterator find_not_of(Iterator, Iterator, basic_string_view) const noexcept;

  // public data members
  static constexpr size_type npos;
};

Description

basic_string_view public construct/copy/destruct

  1. basic_string_view() noexcept;
  2. basic_string_view(const basic_string_view & rhs);
  3. template<typename Allocator> 
      basic_string_view(const std::basic_string< charT, traits, Allocator > & str) noexcept;
  4. basic_string_view(const charT * str);
  5. basic_string_view(const charT * str, size_type len);
  6. basic_string_view & operator=(const basic_string_view & rhs);

basic_string_view public member functions

  1. constexpr const_iterator begin() const noexcept;
  2. constexpr const_iterator cbegin() const noexcept;
  3. constexpr const_iterator end() const noexcept;
  4. constexpr const_iterator cend() const noexcept;
  5. const_reverse_iterator rbegin() const noexcept;
  6. const_reverse_iterator crbegin() const noexcept;
  7. const_reverse_iterator rend() const noexcept;
  8. const_reverse_iterator crend() const noexcept;
  9. constexpr size_type size() const noexcept;
  10. constexpr size_type length() const noexcept;
  11. constexpr size_type max_size() const noexcept;
  12. constexpr bool empty() const noexcept;
  13. constexpr const_reference operator[](size_type pos) const noexcept;
  14. constexpr const_reference at(size_t pos) const;
  15. constexpr const_reference front() const;
  16. constexpr const_reference back() const;
  17. constexpr const_pointer data() const noexcept;
  18. void clear() noexcept;
  19. constexpr void remove_prefix(size_type n);
  20. constexpr void remove_suffix(size_type n);
  21. constexpr void swap(basic_string_view & s) noexcept;
  22. template<typename Allocator> 
      explicit operator std::basic_string< charT, traits, Allocator >() const;
  23. template<typename Allocator = std::allocator<charT> > 
      std::basic_string< charT, traits, Allocator > 
      to_string(const Allocator & a = Allocator()) const;
  24. size_type copy(charT * s, size_type n, size_type pos = 0) const;
  25. constexpr basic_string_view substr(size_type pos, size_type n = npos) const;
  26. constexpr int compare(basic_string_view x) const noexcept;
  27. constexpr int 
    compare(size_type pos1, size_type n1, basic_string_view x) const noexcept;
  28. constexpr int 
    compare(size_type pos1, size_type n1, basic_string_view x, size_type pos2, 
            size_type n2) const;
  29. constexpr int compare(const charT * x) const;
  30. constexpr int compare(size_type pos1, size_type n1, const charT * x) const;
  31. constexpr int 
    compare(size_type pos1, size_type n1, const charT * x, size_type n2) const;
  32. constexpr bool starts_with(charT c) const noexcept;
  33. constexpr bool starts_with(basic_string_view x) const noexcept;
  34. constexpr bool ends_with(charT c) const noexcept;
  35. constexpr bool ends_with(basic_string_view x) const noexcept;
  36. constexpr size_type 
    find(basic_string_view s, size_type pos = 0) const noexcept;
  37. constexpr size_type find(charT c, size_type pos = 0) const noexcept;
  38. constexpr size_type 
    find(const charT * s, size_type pos, size_type n) const noexcept;
  39. constexpr size_type find(const charT * s, size_type pos = 0) const noexcept;
  40. constexpr size_type 
    rfind(basic_string_view s, size_type pos = npos) const noexcept;
  41. constexpr size_type rfind(charT c, size_type pos = npos) const noexcept;
  42. constexpr size_type 
    rfind(const charT * s, size_type pos, size_type n) const noexcept;
  43. constexpr size_type 
    rfind(const charT * s, size_type pos = npos) const noexcept;
  44. constexpr size_type 
    find_first_of(basic_string_view s, size_type pos = 0) const noexcept;
  45. constexpr size_type find_first_of(charT c, size_type pos = 0) const noexcept;
  46. constexpr size_type 
    find_first_of(const charT * s, size_type pos, size_type n) const noexcept;
  47. constexpr size_type 
    find_first_of(const charT * s, size_type pos = 0) const noexcept;
  48. constexpr size_type 
    find_last_of(basic_string_view s, size_type pos = npos) const noexcept;
  49. constexpr size_type find_last_of(charT c, size_type pos = npos) const noexcept;
  50. constexpr size_type 
    find_last_of(const charT * s, size_type pos, size_type n) const noexcept;
  51. constexpr size_type 
    find_last_of(const charT * s, size_type pos = npos) const noexcept;
  52. constexpr size_type 
    find_first_not_of(basic_string_view s, size_type pos = 0) const noexcept;
  53. constexpr size_type 
    find_first_not_of(charT c, size_type pos = 0) const noexcept;
  54. constexpr size_type 
    find_first_not_of(const charT * s, size_type pos, size_type n) const noexcept;
  55. constexpr size_type 
    find_first_not_of(const charT * s, size_type pos = 0) const noexcept;
  56. constexpr size_type 
    find_last_not_of(basic_string_view s, size_type pos = npos) const noexcept;
  57. constexpr size_type 
    find_last_not_of(charT c, size_type pos = npos) const noexcept;
  58. constexpr size_type 
    find_last_not_of(const charT * s, size_type pos, size_type n) const noexcept;
  59. constexpr size_type 
    find_last_not_of(const charT * s, size_type pos = npos) const noexcept;

basic_string_view private member functions

  1. template<typename r_iter> 
      size_type reverse_distance(r_iter first, r_iter last) const noexcept;
  2. template<typename Iterator> 
      Iterator find_not_of(Iterator first, Iterator last, basic_string_view s) const noexcept;

PrevUpHomeNext