Update docs, add docs for compare

This commit is contained in:
Krystian Stasiowski
2019-11-04 23:35:45 -05:00
parent 335255c0ff
commit 1532568433

View File

@ -688,7 +688,7 @@ public:
return insert(index, s, Traits::length(s)); return insert(index, s, Traits::length(s));
} }
/** Inserts the characters in the range `[s, s+count]` at the position `index` /** Inserts the characters in the range `(s, s+count)` at the position `index`
The inserted string can contain null characters. The inserted string can contain null characters.
@ -1141,6 +1141,10 @@ public:
return append(t); return append(t);
} }
/** Compare the string with another
Compares this string to `s`.
*/
template<std::size_t M> template<std::size_t M>
int int
compare( compare(
@ -1150,6 +1154,10 @@ public:
s_, n_, &s.s_[0], s.n_); s_, n_, &s.s_[0], s.n_);
} }
/** Compare the string with another
Compares a `[pos1, pos1+count1)` substring of this string to `s`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
*/
template<std::size_t M> template<std::size_t M>
int int
compare( compare(
@ -1161,6 +1169,12 @@ public:
substr(pos1, count1), s.data(), s.size()); substr(pos1, count1), s.data(), s.size());
} }
/** Compare the string with another
Compares a `[pos1, pos1+count1)` substring of this string to a substring `[pos2, pos2+count2)` of `s`.
If `count1 > size() - pos1` the first substring is `[pos1, size())`. Likewise, if `count2 > s.size() - pos2` the
second substring is `[pos2, s.size())`.
*/
template<std::size_t M> template<std::size_t M>
int int
compare( compare(
@ -1174,6 +1188,10 @@ public:
substr(pos1, count1), s.substr(pos2, count2)); substr(pos1, count1), s.substr(pos2, count2));
} }
/** Compare the string with another
Compares this string to the null-terminated character sequence beginning at the character pointed to by `s` with length `Traits::length(s)`.
*/
int int
compare( compare(
CharT const* s) const CharT const* s) const
@ -1182,6 +1200,11 @@ public:
s_, n_, s, Traits::length(s)); s_, n_, s, Traits::length(s));
} }
/** Compare the string with another
Compares a `[pos1, pos1+count1)` substring of this string to the null-terminated character sequence beginning at the character pointed to by `s` with
length `Traits::length(s)`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
*/
int int
compare( compare(
size_type pos1, size_type pos1,
@ -1192,17 +1215,25 @@ public:
substr(pos1, count1), s, Traits::length(s)); substr(pos1, count1), s, Traits::length(s));
} }
/** Compare the string with another
Compares a `[pos1, pos1+count1)` substring of this string to the characters in the range `[s, s + count2)`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
*/
int int
compare( compare(
size_type pos1, size_type pos1,
size_type count1, size_type count1,
CharT const*s, CharT const* s,
size_type count2) const size_type count2) const
{ {
return detail::lexicographical_compare<CharT, Traits>( return detail::lexicographical_compare<CharT, Traits>(
substr(pos1, count1), s, count2); substr(pos1, count1), s, count2);
} }
/** Compare the string with another
Compares this string to `s`.
*/
int int
compare( compare(
string_view_type s) const string_view_type s) const
@ -1211,6 +1242,10 @@ public:
s_, n_, s.data(), s.size()); s_, n_, s.data(), s.size());
} }
/** Compare the string with another
Compares a `[pos1, pos1+count1)` substring of this string to `s`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
*/
int int
compare( compare(
size_type pos1, size_type pos1,
@ -1221,6 +1256,14 @@ public:
substr(pos1, count1), s); substr(pos1, count1), s);
} }
/** Compare the string with another
Replaces the part of the string indicated by `[pos1, pos1 + count1)` with a substring `[pos2, pos2 + count2)` of `t` after converting to `string_view_type`.
This function participates in overload resolution if
`T` is convertible to `string_view` and `T` is not
convertible to `CharT const*`.
*/
template<typename T> template<typename T>
#if GENERATING_DOCUMENTATION #if GENERATING_DOCUMENTATION
int int
@ -1241,7 +1284,7 @@ public:
string_view_type(t).substr(pos2, count2)); string_view_type(t).substr(pos2, count2));
} }
/** Returns a substring `[pos, pos + count)`. If the requested substring is greater than the size of the string, the returned substring is [pos, size()). /** Returns a substring `(pos, pos + count)`. If the requested substring is greater than the size of the string, the returned substring is `[pos, size())`.
@throw std::out_of_range if `pos > size()` @throw std::out_of_range if `pos > size()`
*/ */
@ -1250,7 +1293,7 @@ public:
size_type pos = 0, size_type pos = 0,
size_type count = npos) const; size_type count = npos) const;
/// Copy a substring (pos, pos+count) to character string pointed to by `dest`. /// Copy a substring `(pos, pos+count)` to character string pointed to by `dest`.
size_type size_type
copy( copy(
CharT* dest, CharT* dest,
@ -1287,7 +1330,9 @@ public:
swap( swap(
fixed_string<M, CharT, Traits>& s); fixed_string<M, CharT, Traits>& s);
/** Replaces the part of the string indicated by [pos1, pos1 + n1) with `s` /** Replace a subset of the string
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `s`
@throw std::out_of_range if `pos1 > size()` @throw std::out_of_range if `pos1 > size()`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@ -1303,7 +1348,9 @@ public:
return replace(pos1, n1, str.data(), str.size()); return replace(pos1, n1, str.data(), str.size());
} }
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with substring `[pos2, pos2 + n2)` of `str` /** Replace a subset of the string
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with substring `[pos2, pos2 + n2)` of `str`
except that if `n2` is greater than `str.size()`, `[pos2, pos2 + str.size())` is used. except that if `n2` is greater than `str.size()`, `[pos2, pos2 + str.size())` is used.
@throw std::out_of_range if `pos1 > size()` @throw std::out_of_range if `pos1 > size()`
@ -1321,7 +1368,9 @@ public:
return replace(pos1, n1, str.substr(pos2, n2)); return replace(pos1, n1, str.substr(pos2, n2));
} }
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `t` after converting to `string_view_type`. /** Replace a subset of the string
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `t` after converting to `string_view_type`.
This function participates in overload resolution if This function participates in overload resolution if
`T` is convertible to `string_view` and `T` is not `T` is convertible to `string_view` and `T` is not
@ -1349,7 +1398,9 @@ public:
return replace(pos1, n1, sv.data(), sv.size()); return replace(pos1, n1, sv.data(), sv.size());
} }
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with substring `[pos2, pos2 + n2)` of `t` /** Replace a subset of the string
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with substring `[pos2, pos2 + n2)` of `t`
after converting to `string_view_type`, except that if `n2` is greater than `t.size()`, `[pos2, pos2 + t.size())` is used. after converting to `string_view_type`, except that if `n2` is greater than `t.size()`, `[pos2, pos2 + t.size())` is used.
This function participates in overload resolution if This function participates in overload resolution if
@ -1380,7 +1431,9 @@ public:
return replace(pos1, n1, sv.substr(pos2, n2)); return replace(pos1, n1, sv.substr(pos2, n2));
} }
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + n2)`. /** Replace a subset of the string
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + n2)`.
@throw std::out_of_range if `pos1 > size()` @throw std::out_of_range if `pos1 > size()`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@ -1394,7 +1447,9 @@ public:
size_type n2); size_type n2);
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + Traits::length(s))`. /** Replace a subset of the string
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + Traits::length(s))`.
@throw std::out_of_range if `pos1 > size()` @throw std::out_of_range if `pos1 > size()`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@ -1409,7 +1464,9 @@ public:
return replace(pos, n1, s, Traits::length(s)); return replace(pos, n1, s, Traits::length(s));
} }
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `n2` copies of `c`. /** Replace a subset of the string
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `n2` copies of `c`.
@throw std::out_of_range if `pos1 > size()` @throw std::out_of_range if `pos1 > size()`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@ -1422,7 +1479,9 @@ public:
size_type n2, size_type n2,
CharT c); CharT c);
/** Replaces the part of the string indicated by [i1, i2) with `s` /** Replace a subset of the string
Replaces the part of the string indicated by `[i1, i2)` with `s`
@throw std::out_of_range if `pos1 > size()` @throw std::out_of_range if `pos1 > size()`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@ -1437,13 +1496,15 @@ public:
return replace(i1, i2, str.data(), str.size()); return replace(i1, i2, str.data(), str.size());
} }
/** Replaces the part of the string indicated by `[i1, i2)` with `t` after converting to `string_view_type`. /** Replace a subset of the string
Replaces the part of the string indicated by `[i1, i2)` with `t` after converting to `string_view_type`.
This function participates in overload resolution if This function participates in overload resolution if
`T` is convertible to `string_view` and `T` is not `T` is convertible to `string_view` and `T` is not
convertible to `CharT const*`. convertible to `CharT const*`.
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]` @throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size())`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@return `*this` @return `*this`
*/ */
@ -1465,9 +1526,11 @@ public:
return replace(i1 - begin(), i2 - i1, sv.data(), sv.size()); return replace(i1 - begin(), i2 - i1, sv.data(), sv.size());
} }
/** Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + n)`. /** Replace a subset of the string
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + n)`.
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]` @throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size())`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@return `*this` @return `*this`
*/ */
@ -1481,9 +1544,11 @@ public:
return replace(i1 - begin(), i2 - i1, s, n); return replace(i1 - begin(), i2 - i1, s, n);
} }
/** Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + Traits::length(s))`. /** Replace a subset of the string
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + Traits::length(s))`.
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]` @throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size())`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@return `*this` @return `*this`
*/ */
@ -1496,9 +1561,11 @@ public:
return replace(i1, i2, s, Traits::length(s)); return replace(i1, i2, s, Traits::length(s));
} }
/** Replaces the part of the string indicated by `[i1, i2)` with `n` copies of `c`. /** Replace a subset of the string
Replaces the part of the string indicated by `[i1, i2)` with `n` copies of `c`.
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]` @throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size())`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@return `*this` @return `*this`
*/ */
@ -1512,9 +1579,11 @@ public:
return replace(i1 - begin(), i2 - i1, n, c); return replace(i1 - begin(), i2 - i1, n, c);
} }
/** Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[j1, j2)`. /** Replace a subset of the string
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[j1, j2)`.
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]` @throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size())`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@return `*this` @return `*this`
*/ */
@ -1535,9 +1604,11 @@ public:
return replace(i1, i2, fixed_string(j1, j2)); return replace(i1, i2, fixed_string(j1, j2));
} }
/** Replaces the part of the string indicated by `[i1, i2)` with the characters in the initializer list `il`. /** Replace a subset of the string
Replaces the part of the string indicated by `[i1, i2)` with the characters in the initializer list `il`.
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]` @throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size())`
@throw std::length_error if the resulting string exceeds `max_size()` @throw std::length_error if the resulting string exceeds `max_size()`
@return `*this` @return `*this`
*/ */
@ -1589,7 +1660,7 @@ public:
return find(str.data(), pos, str.size()); return find(str.data(), pos, str.size());
} }
/// Finds the first substring equal to the range `[s, s + count)`. This range may contain null characters. /// Finds the first substring equal to the range `(s, s + count)`. This range may contain null characters.
size_type size_type
find( find(
const CharT* s, const CharT* s,
@ -1653,7 +1724,7 @@ public:
return rfind(str.data(), pos, str.size()); return rfind(str.data(), pos, str.size());
} }
/// Finds the last substring equal to the range `[s, s + count)`. This range may contain null characters. /// Finds the last substring equal to the range `(s, s + count)`. This range may contain null characters.
size_type size_type
rfind( rfind(
const CharT* s, const CharT* s,
@ -1716,7 +1787,7 @@ public:
return find_first_of(str.data(), pos, str.size()); return find_first_of(str.data(), pos, str.size());
} }
/// Finds the first character equal to one of the characters in the range `[s, s + count)`. This range can include null characters. /// Finds the first character equal to one of the characters in the range `(s, s + count)`. This range can include null characters.
size_type size_type
find_first_of( find_first_of(
const CharT* s, const CharT* s,
@ -1779,7 +1850,7 @@ public:
return find_last_of(str.data(), pos, str.size()); return find_last_of(str.data(), pos, str.size());
} }
/// Finds the last character equal to one of the characters in the range `[s, s + count)`. This range can include null characters. /// Finds the last character equal to one of the characters in the range `(s, s + count)`. This range can include null characters.
size_type size_type
find_last_of( find_last_of(
const CharT* s, const CharT* s,
@ -1842,7 +1913,7 @@ public:
return find_first_not_of(str.data(), pos, str.size()); return find_first_not_of(str.data(), pos, str.size());
} }
/// Finds the first character equal to none of characters in range `[s, s + count)`. This range can include null characters. /// Finds the first character equal to none of characters in range `(s, s + count)`. This range can include null characters.
size_type size_type
find_first_not_of( find_first_not_of(
const CharT* s, const CharT* s,
@ -1905,7 +1976,7 @@ public:
return find_last_not_of(str.data(), pos, str.size()); return find_last_not_of(str.data(), pos, str.size());
} }
/// Finds the last character equal to none of characters in range `[s, s + count)`. This range can include null characters. /// Finds the last character equal to none of characters in range `(s, s + count)`. This range can include null characters.
size_type size_type
find_last_not_of( find_last_not_of(
const CharT* s, const CharT* s,