From Jason Turner

[basic.string.general]

Diff to HTML by rtfpessoa

tmp/tmpllcvev6c/{from.md → to.md} RENAMED
@@ -23,14 +23,14 @@ namespace std {
23
  public:
24
  // types
25
  using traits_type = traits;
26
  using value_type = charT;
27
  using allocator_type = Allocator;
28
- using size_type = typename allocator_traits<Allocator>::size_type;
29
- using difference_type = typename allocator_traits<Allocator>::difference_type;
30
- using pointer = typename allocator_traits<Allocator>::pointer;
31
- using const_pointer = typename allocator_traits<Allocator>::const_pointer;
32
  using reference = value_type&;
33
  using const_reference = const value_type&;
34
 
35
  using iterator = implementation-defined // type of basic_string::iterator; // see [container.requirements]
36
  using const_iterator = implementation-defined // type of basic_string::const_iterator; // see [container.requirements]
@@ -106,11 +106,11 @@ namespace std {
106
  template<class Operation> constexpr void resize_and_overwrite(size_type n, Operation op);
107
  constexpr size_type capacity() const noexcept;
108
  constexpr void reserve(size_type res_arg);
109
  constexpr void shrink_to_fit();
110
  constexpr void clear() noexcept;
111
- [[nodiscard]] constexpr bool empty() const noexcept;
112
 
113
  // [string.access], element access
114
  constexpr const_reference operator[](size_type pos) const;
115
  constexpr reference operator[](size_type pos);
116
  constexpr const_reference at(size_type n) const;
@@ -272,10 +272,12 @@ namespace std {
272
  constexpr size_type find_last_not_of(const charT* s, size_type pos = npos) const;
273
  constexpr size_type find_last_not_of(charT c, size_type pos = npos) const noexcept;
274
 
275
  constexpr basic_string substr(size_type pos = 0, size_type n = npos) const &;
276
  constexpr basic_string substr(size_type pos = 0, size_type n = npos) &&;
 
 
277
 
278
  template<class T>
279
  constexpr int compare(const T& t) const noexcept(see below);
280
  template<class T>
281
  constexpr int compare(size_type pos1, size_type n1, const T& t) const;
 
23
  public:
24
  // types
25
  using traits_type = traits;
26
  using value_type = charT;
27
  using allocator_type = Allocator;
28
+ using size_type = allocator_traits<Allocator>::size_type;
29
+ using difference_type = allocator_traits<Allocator>::difference_type;
30
+ using pointer = allocator_traits<Allocator>::pointer;
31
+ using const_pointer = allocator_traits<Allocator>::const_pointer;
32
  using reference = value_type&;
33
  using const_reference = const value_type&;
34
 
35
  using iterator = implementation-defined // type of basic_string::iterator; // see [container.requirements]
36
  using const_iterator = implementation-defined // type of basic_string::const_iterator; // see [container.requirements]
 
106
  template<class Operation> constexpr void resize_and_overwrite(size_type n, Operation op);
107
  constexpr size_type capacity() const noexcept;
108
  constexpr void reserve(size_type res_arg);
109
  constexpr void shrink_to_fit();
110
  constexpr void clear() noexcept;
111
+ constexpr bool empty() const noexcept;
112
 
113
  // [string.access], element access
114
  constexpr const_reference operator[](size_type pos) const;
115
  constexpr reference operator[](size_type pos);
116
  constexpr const_reference at(size_type n) const;
 
272
  constexpr size_type find_last_not_of(const charT* s, size_type pos = npos) const;
273
  constexpr size_type find_last_not_of(charT c, size_type pos = npos) const noexcept;
274
 
275
  constexpr basic_string substr(size_type pos = 0, size_type n = npos) const &;
276
  constexpr basic_string substr(size_type pos = 0, size_type n = npos) &&;
277
+ constexpr basic_string_view<charT, traits> subview(size_type pos = 0,
278
+ size_type n = npos) const;
279
 
280
  template<class T>
281
  constexpr int compare(const T& t) const noexcept(see below);
282
  template<class T>
283
  constexpr int compare(size_type pos1, size_type n1, const T& t) const;