2021-10-05 21:37:46 +02:00

10296 lines
288 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[section:boost__static_strings__basic_static_string basic_static_string]
A fixed-capacity string.
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
typename CharT,
typename Traits = std::char_traits<CharT>>
class basic_static_string
```
[heading Types]
[table [[Name][Description]]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.const_iterator const_iterator]]
]
[The constant iterator type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.const_pointer const_pointer]]
]
[The constant pointer type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.const_reference const_reference]]
]
[The constant reference type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.const_reverse_iterator const_reverse_iterator]]
]
[The constant reverse iterator type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.difference_type difference_type]]
]
[The difference type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.iterator iterator]]
]
[The iterator type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.pointer pointer]]
]
[The pointer type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.reference reference]]
]
[The reference type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.reverse_iterator reverse_iterator]]
]
[The reverse iterator type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.size_type size_type]]
]
[The size type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.string_view_type string_view_type]]
]
[The string view type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.traits_type traits_type]]
]
[The traits type.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.value_type value_type]]
]
[The character type.
]
]
]
[heading Member Functions]
[table [[Name][Description]]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.append append]]
]
[Append to the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.assign assign]]
]
[Assign to the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.at at]]
]
[Access a character with bounds checking.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.back back]]
]
[Return the last character.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string basic_static_string] [role silver \[constructor\]]]
]
[Constructor.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.begin begin]]
]
[Return an iterator to the beginning.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.c_str c_str]]
]
[Return a pointer to the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.capacity capacity]]
]
[Return the number of characters that can be stored.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.cbegin cbegin]]
]
[Return an iterator to the beginning.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.cend cend]]
]
[Return an iterator to the end.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.clear clear]]
]
[Clear the contents.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.compare compare]]
]
[Compare a string with the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.copy copy]]
]
[Copy a substring to another string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.crbegin crbegin]]
]
[Return a reverse iterator to the beginning.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.crend crend]]
]
[Return a reverse iterator to the end.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.data data]]
]
[Return a pointer to the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.empty empty]]
]
[Return if the string is empty.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.end end]]
]
[Return an iterator to the end.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.ends_with ends_with]]
]
[Return whether the string ends with a string. [br][role silver —][br]Return whether the string ends with a character.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.erase erase]]
]
[Erase from the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.find find]]
]
[Find the first occurrence of a string within the string. [br][role silver —][br]Find the first occurrence of a character within the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of find_first_not_of]]
]
[Find the first occurrence of a character not within the string. [br][role silver —][br]Find the first occurrence of any of the characters not within the string. [br][role silver —][br]Find the first occurrence of a character not equal to `c`.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.find_first_of find_first_of]]
]
[Find the first occurrence of any of the characters within the string. [br][role silver —][br]Find the first occurrence of a character within the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of find_last_not_of]]
]
[Find the last occurrence of a character not within the string. [br][role silver —][br]Find the last occurrence of a character not equal to `c`.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.find_last_of find_last_of]]
]
[Find the last occurrence of any of the characters within the string. [br][role silver —][br]Find the last occurrence of a character within the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.front front]]
]
[Return the first character.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.insert insert]]
]
[Insert into the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.length length]]
]
[Return the size of the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.max_size max_size]]
]
[Return the number of characters that can be stored.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.operator_string_view_type operator string_view_type]]
]
[Convert to a string view referring to the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_ operator+=]]
]
[Append to the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_ operator=]]
]
[Assign to the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_ operator\[\]]]
]
[Access a character.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.pop_back pop_back]]
]
[Remove the last character.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.push_back push_back]]
]
[Append a character.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.rbegin rbegin]]
]
[Return a reverse iterator to the beginning.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.rend rend]]
]
[Return a reverse iterator to the end.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.replace replace]]
]
[Replace a part of the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.reserve reserve]]
]
[Increase the capacity.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.resize resize]]
]
[Change the size of the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.rfind rfind]]
]
[Find the last occurrence of a string within the string. [br][role silver —][br]Find the last occurrence of a character within the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.shrink_to_fit shrink_to_fit]]
]
[Request the removal of unused capacity.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.size size]]
]
[Return the size of the string.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.starts_with starts_with]]
]
[Return whether the string begins with a string. [br][role silver —][br]Return whether the string begins with a character.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.substr substr]]
]
[Return a substring.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.subview subview]]
]
[Return a string view of a substring.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.swap swap]]
]
[Swap two strings.
]
]
]
[heading Static Members]
[table [[Name][Description]]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.npos npos]]
]
[A special index.
]
]
[
[[*[link static_string.ref.boost__static_strings__basic_static_string.static_capacity static_capacity]]
]
[Maximum size of the string excluding any null terminator.
]
]
]
[heading Description]
These objects behave like `std::string` except that the storage is not dynamically allocated but rather fixed in size, and stored in the object itself.
These strings offer performance advantages when an algorithm can execute with a reasonable upper limit on the size of a value.
[heading Aliases]
The following alias templates are provided for convenience:
```
template<std::size_t N>
using static_string =
basic_static_string<N, char, std::char_traits<char>>;
```
```
template<std::size_t N>
using static_wstring =
basic_static_string<N, wchar_t, std::char_traits<wchar_t>>;
```
```
template<std::size_t N>
using static_u16string =
basic_static_string<N, char16_t, std::char_traits<char16_t>>;
```
```
template<std::size_t N>
using static_u32string =
basic_static_string<N, char32_t, std::char_traits<char32_t>>;
```
Addtionally, the alias template `static_u8string` is provided in C++20
```
template<std::size_t N>
using static_u8string =
basic_static_string<N, char8_t, std::char_traits<char8_t>>;
```
[heading See Also]
[link static_string.ref.boost__static_strings__to_static_string `to_static_string`]
[section:traits_type basic_static_string::traits_type]
[indexterm2 traits_type..basic_static_string]
The traits type.
[heading Synopsis]
```
using traits_type = Traits;
```
[heading Description]
[endsect]
[section:value_type basic_static_string::value_type]
[indexterm2 value_type..basic_static_string]
The character type.
[heading Synopsis]
```
using value_type = typename traits_type::char_type;
```
[heading Description]
[endsect]
[section:size_type basic_static_string::size_type]
[indexterm2 size_type..basic_static_string]
The size type.
[heading Synopsis]
```
using size_type = std::size_t;
```
[heading Description]
[endsect]
[section:difference_type basic_static_string::difference_type]
[indexterm2 difference_type..basic_static_string]
The difference type.
[heading Synopsis]
```
using difference_type = std::ptrdiff_t;
```
[heading Description]
[endsect]
[section:pointer basic_static_string::pointer]
[indexterm2 pointer..basic_static_string]
The pointer type.
[heading Synopsis]
```
using pointer = value_type*;
```
[heading Description]
[endsect]
[section:reference basic_static_string::reference]
[indexterm2 reference..basic_static_string]
The reference type.
[heading Synopsis]
```
using reference = value_type&;
```
[heading Description]
[endsect]
[section:const_pointer basic_static_string::const_pointer]
[indexterm2 const_pointer..basic_static_string]
The constant pointer type.
[heading Synopsis]
```
using const_pointer = const value_type*;
```
[heading Description]
[endsect]
[section:const_reference basic_static_string::const_reference]
[indexterm2 const_reference..basic_static_string]
The constant reference type.
[heading Synopsis]
```
using const_reference = const value_type&;
```
[heading Description]
[endsect]
[section:iterator basic_static_string::iterator]
[indexterm2 iterator..basic_static_string]
The iterator type.
[heading Synopsis]
```
using iterator = value_type*;
```
[heading Description]
[endsect]
[section:const_iterator basic_static_string::const_iterator]
[indexterm2 const_iterator..basic_static_string]
The constant iterator type.
[heading Synopsis]
```
using const_iterator = const value_type*;
```
[heading Description]
[endsect]
[section:reverse_iterator basic_static_string::reverse_iterator]
[indexterm2 reverse_iterator..basic_static_string]
The reverse iterator type.
[heading Synopsis]
```
using reverse_iterator = std::reverse_iterator< iterator >;
```
[heading Description]
[endsect]
[section:const_reverse_iterator basic_static_string::const_reverse_iterator]
[indexterm2 const_reverse_iterator..basic_static_string]
The constant reverse iterator type.
[heading Synopsis]
```
using const_reverse_iterator = std::reverse_iterator< const_iterator >;
```
[heading Description]
[endsect]
[section:string_view_type basic_static_string::string_view_type]
[indexterm2 string_view_type..basic_static_string]
The string view type.
[heading Synopsis]
```
using string_view_type = basic_string_view< value_type, traits_type >;
```
[heading Description]
[endsect]
[section:static_capacity basic_static_string::static_capacity]
[indexterm2 static_capacity..basic_static_string]
Maximum size of the string excluding any null terminator.
[heading Synopsis]
```
static
constexpr size_type static_capacity = N;
```
[heading Description]
[endsect]
[section:npos basic_static_string::npos]
[indexterm2 npos..basic_static_string]
A special index.
[heading Synopsis]
```
static
constexpr size_type npos = ``[link static_string.ref.boost__static_strings__basic_static_string.size_type size_type]``(-1);
```
[heading Description]
[endsect]
[section:basic_static_string basic_static_string::basic_static_string]
[indexterm2 basic_static_string..basic_static_string]
Constructor.
```
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload1 basic_static_string]``();
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload1 `more...`]]``
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload2 basic_static_string]``(
size_type count,
value_type ch);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload2 `more...`]]``
template<
std::size_t M>
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload3 basic_static_string]``(
const basic_static_string< M, CharT, Traits >& other,
size_type pos);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload3 `more...`]]``
template<
std::size_t M>
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload4 basic_static_string]``(
const basic_static_string< M, CharT, Traits >& other,
size_type pos,
size_type count);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload4 `more...`]]``
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload5 basic_static_string]``(
const_pointer s,
size_type count);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload5 `more...`]]``
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload6 basic_static_string]``(
const_pointer s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload6 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload7 basic_static_string]``(
InputIterator first,
InputIterator last);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload7 `more...`]]``
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload8 basic_static_string]``(
const basic_static_string& other);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload8 `more...`]]``
template<
std::size_t M>
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload9 basic_static_string]``(
const basic_static_string< M, CharT, Traits >& other);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload9 `more...`]]``
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload10 basic_static_string]``(
std::initializer_list< value_type > init);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload10 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
explicit
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload11 basic_static_string]``(
const T& t);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload11 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr
``[link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload12 basic_static_string]``(
const T& t,
size_type pos,
size_type n);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.basic_static_string.overload12 `more...`]]``
```
[section:overload1 basic_static_string::basic_static_string (1 of 12 overloads)]
Constructor.
[heading Synopsis]
```
constexpr
basic_static_string();
```
[heading Description]
Construct an empty string
[endsect]
[section:overload2 basic_static_string::basic_static_string (2 of 12 overloads)]
Constructor.
[heading Synopsis]
```
constexpr
basic_static_string(
size_type count,
value_type ch);
```
[heading Description]
Construct the string with `count` copies of character `ch`.
The behavior is undefined if `count >= npos`
[endsect]
[section:overload3 basic_static_string::basic_static_string (3 of 12 overloads)]
Constructor.
[heading Synopsis]
```
template<
std::size_t M>
constexpr
basic_static_string(
const basic_static_string< M, CharT, Traits >& other,
size_type pos);
```
[heading Description]
Construct with a substring (pos, other.size()) of `other`.
[endsect]
[section:overload4 basic_static_string::basic_static_string (4 of 12 overloads)]
Constructor.
[heading Synopsis]
```
template<
std::size_t M>
constexpr
basic_static_string(
const basic_static_string< M, CharT, Traits >& other,
size_type pos,
size_type count);
```
[heading Description]
Construct with a substring (pos, count) of `other`.
[endsect]
[section:overload5 basic_static_string::basic_static_string (5 of 12 overloads)]
Constructor.
[heading Synopsis]
```
constexpr
basic_static_string(
const_pointer s,
size_type count);
```
[heading Description]
Construct with the first `count` characters of `s`, including nulls.
[endsect]
[section:overload6 basic_static_string::basic_static_string (6 of 12 overloads)]
Constructor.
[heading Synopsis]
```
constexpr
basic_static_string(
const_pointer s);
```
[heading Description]
Construct from a null terminated string.
[endsect]
[section:overload7 basic_static_string::basic_static_string (7 of 12 overloads)]
Constructor.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr
basic_static_string(
InputIterator first,
InputIterator last);
```
[heading Description]
Construct from a range of characters
[endsect]
[section:overload8 basic_static_string::basic_static_string (8 of 12 overloads)]
Constructor.
[heading Synopsis]
```
constexpr
basic_static_string(
const basic_static_string& other);
```
[heading Description]
Copy constructor.
[endsect]
[section:overload9 basic_static_string::basic_static_string (9 of 12 overloads)]
Constructor.
[heading Synopsis]
```
template<
std::size_t M>
constexpr
basic_static_string(
const basic_static_string< M, CharT, Traits >& other);
```
[heading Description]
Copy constructor.
[endsect]
[section:overload10 basic_static_string::basic_static_string (10 of 12 overloads)]
Constructor.
[heading Synopsis]
```
constexpr
basic_static_string(
std::initializer_list< value_type > init);
```
[heading Description]
Construct from an initializer list
[endsect]
[section:overload11 basic_static_string::basic_static_string (11 of 12 overloads)]
Constructor.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr
basic_static_string(
const T& t);
```
[heading Description]
Construct from a object convertible to `string_view_type`
[endsect]
[section:overload12 basic_static_string::basic_static_string (12 of 12 overloads)]
Constructor.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr
basic_static_string(
const T& t,
size_type pos,
size_type n);
```
[heading Description]
Construct from any object convertible to `string_view_type`.
The range (pos, n) is extracted from the value obtained by converting `t` to `string_view_type`, and used to construct the string.
[endsect]
[endsect]
[section:operator_eq_ basic_static_string::operator=]
[indexterm2 operator=..basic_static_string]
Assign to the string.
```
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload1 operator=]``(
const basic_static_string< M, CharT, Traits >& s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload1 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload2 operator=]``(
const_pointer s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload2 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload3 operator=]``(
value_type ch);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload3 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload4 operator=]``(
std::initializer_list< value_type > ilist);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload4 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload5 operator=]``(
const T& t);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_eq_.overload5 `more...`]]``
```
[section:overload1 basic_static_string::operator= (1 of 5 overloads)]
Assign to the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
operator=(
const basic_static_string< M, CharT, Traits >& s);
```
[heading Description]
Replaces the contents with those of the string `s`.
[heading Complexity]
Linear in `s.size()`.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the other string.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to replace the contents with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload2 basic_static_string::operator= (2 of 5 overloads)]
Assign to the string.
[heading Synopsis]
```
constexpr basic_static_string&
operator=(
const_pointer s);
```
[heading Description]
Replaces the contents with those of `{s, s + traits_type::length(s))`.
[heading Complexity]
Linear in `count`.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
A pointer to the string to copy from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
traits_type::length(s) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload3 basic_static_string::operator= (3 of 5 overloads)]
Assign to the string.
[heading Synopsis]
```
constexpr basic_static_string&
operator=(
value_type ch);
```
[heading Description]
Replaces the contents with a single copy of the character `ch`.
[heading Complexity]
Constant.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`ch`
]
[
The character to assign to.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload4 basic_static_string::operator= (4 of 5 overloads)]
Assign to the string.
[heading Synopsis]
```
constexpr basic_static_string&
operator=(
std::initializer_list< value_type > ilist);
```
[heading Description]
Replaces the contents with those of the initializer list `ilist`.
[heading Complexity]
Linear in `init.size()`.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`ilist`
]
[
The initializer list to copy from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload5 basic_static_string::operator= (5 of 5 overloads)]
Assign to the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
operator=(
const T& t);
```
[heading Description]
Replaces the contents with those of `sv`, where `sv` is `string_view_type(t)`.
[heading Complexity]
Linear in `sv.size()`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The view can contain null characters.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
A type convertible to `string_view_type`.
]
]
]
[heading Constraints]
```
std::is_convertible<const T&, string_view>::value &&
!std::is_convertible<const T&, const CharT*>::value
```
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The object to assign from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[endsect]
[section:assign basic_static_string::assign]
[indexterm2 assign..basic_static_string]
Assign to the string.
```
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload1 assign]``(
size_type count,
value_type ch);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload1 `more...`]]``
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload2 assign]``(
const basic_static_string< M, CharT, Traits >& s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload2 `more...`]]``
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload3 assign]``(
const basic_static_string< M, CharT, Traits >& s,
size_type pos,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload3 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload4 assign]``(
const_pointer s,
size_type count);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload4 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload5 assign]``(
const_pointer s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload5 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload6 assign]``(
InputIterator first,
InputIterator last);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload6 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload7 assign]``(
std::initializer_list< value_type > ilist);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload7 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload8 assign]``(
const T& t);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload8 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.assign.overload9 assign]``(
const T& t,
size_type pos,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.assign.overload9 `more...`]]``
```
[section:overload1 basic_static_string::assign (1 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
constexpr basic_static_string&
assign(
size_type count,
value_type ch);
```
[heading Description]
Replaces the contents with `count` copies of character `ch`.
[heading Complexity]
Linear in `count`.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`count`
]
[
The size of the resulting string.
]
]
[
[`ch`
]
[
The value to initialize characters of the string with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload2 basic_static_string::assign (2 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
assign(
const basic_static_string< M, CharT, Traits >& s);
```
[heading Description]
Replaces the contents with those of the string `s`.
[heading Complexity]
Linear in `s.size()`.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the other string.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to replace the contents with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload3 basic_static_string::assign (3 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
assign(
const basic_static_string< M, CharT, Traits >& s,
size_type pos,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Replaces the contents with those of the string `sub`, where `sub` is `s.substr(pos, count)`.
[heading Complexity]
Linear in `sub.size()`.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The capacity of the other string.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to replace the contents with.
]
]
[
[`pos`
]
[
The index at which to begin the substring.
]
]
[
[`count`
]
[
The size of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
sub.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload4 basic_static_string::assign (4 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
constexpr basic_static_string&
assign(
const_pointer s,
size_type count);
```
[heading Description]
Replaces the contents with those of `{s, s + count)`.
[heading Complexity]
Linear in `count`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The range can contain null characters.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`count`
]
[
The number of characters to copy.
]
]
[
[`s`
]
[
A pointer to the string to copy from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload5 basic_static_string::assign (5 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
constexpr basic_static_string&
assign(
const_pointer s);
```
[heading Description]
Replaces the contents with those of `{s, s + traits_type::length(s))`.
[heading Complexity]
Linear in `count`.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
A pointer to the string to copy from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
traits_type::length(s) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload6 basic_static_string::assign (6 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
assign(
InputIterator first,
InputIterator last);
```
[heading Description]
Replaces the contents with the characters in the range `{first, last)`.
[heading Complexity]
Linear in `std::distance(first, last)`.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`InputIterator`
]
[
The type of the iterators.
]
]
]
[heading Constraints]
`InputIterator`satisfies [*InputIterator].
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`first`
]
[
An iterator referring to the first character to assign.
]
]
[
[`last`
]
[
An iterator past the end of the range to assign from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
std::distance(first, last) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload7 basic_static_string::assign (7 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
constexpr basic_static_string&
assign(
std::initializer_list< value_type > ilist);
```
[heading Description]
Replaces the contents with those of the initializer list `ilist`.
[heading Complexity]
Linear in `init.size()`.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`ilist`
]
[
The initializer list to copy from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload8 basic_static_string::assign (8 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
assign(
const T& t);
```
[heading Description]
Replaces the contents with those of `sv`, where `sv` is `string_view_type(t)`.
[heading Complexity]
Linear in `sv.size()`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The view can contain null characters.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
A type convertible to `string_view_type`.
]
]
]
[heading Constraints]
```
std::is_convertible<const T&, string_view>::value &&
!std::is_convertible<const T&, const CharT*>::value
```
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The object to assign from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[section:overload9 basic_static_string::assign (9 of 9 overloads)]
Assign to the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
basic_static_string&
assign(
const T& t,
size_type pos,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Replaces the contents with those of the substring `sv`, where `sv` is `string_view_type(t).substr(pos, count)`.
[heading Complexity]
Linear in `sv.size()`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The view can contain null characters.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
A type convertible to `string_view_type`.
]
]
]
[heading Constraints]
```
std::is_convertible<const T&, string_view>::value &&
!std::is_convertible<const T&, const CharT*>::value
```
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The object to assign from.
]
]
[
[`pos`
]
[
The index at which to begin the substring.
]
]
[
[`count`
]
[
The size of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`].
]
]
]
[endsect]
[endsect]
[section:at basic_static_string::at]
[indexterm2 at..basic_static_string]
Access a character with bounds checking.
```
constexpr reference
``[link static_string.ref.boost__static_strings__basic_static_string.at.overload1 at]``(
size_type pos);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.at.overload1 `more...`]]``
constexpr const_reference
``[link static_string.ref.boost__static_strings__basic_static_string.at.overload2 at]``(
size_type pos) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.at.overload2 `more...`]]``
```
[section:overload1 basic_static_string::at (1 of 2 overloads)]
Access a character with bounds checking.
[heading Synopsis]
```
constexpr reference
at(
size_type pos);
```
[heading Description]
Returns a reference to the character at index `pos`.
[heading Complexity]
Constant.
[heading Exception Safety]
Strong guarantee.
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to access.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos >= [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload2 basic_static_string::at (2 of 2 overloads)]
Access a character with bounds checking.
[heading Synopsis]
```
constexpr const_reference
at(
size_type pos) const;
```
[heading Description]
Returns a reference to the character at index `pos`.
[heading Complexity]
Constant.
[heading Exception Safety]
Strong guarantee.
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to access.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos >= [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[endsect]
[section:operator_lb__rb_ basic_static_string::operator\[\]]
[indexterm2 operator\[\]..basic_static_string]
Access a character.
```
constexpr reference
``[link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_.overload1 operator\[\]]``(
size_type pos);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_.overload1 `more...`]]``
constexpr const_reference
``[link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_.overload2 operator\[\]]``(
size_type pos) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_lb__rb_.overload2 `more...`]]``
```
[section:overload1 basic_static_string::operator\[\] (1 of 2 overloads)]
Access a character.
[heading Synopsis]
```
constexpr reference
operator\[\](
size_type pos);
```
[heading Description]
Returns a reference to the character at index `pos`.
[heading Complexity]
Constant.
[heading Precondition]
`pos >= size`
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to access.
]
]
]
[endsect]
[section:overload2 basic_static_string::operator\[\] (2 of 2 overloads)]
Access a character.
[heading Synopsis]
```
constexpr const_reference
operator\[\](
size_type pos) const;
```
[heading Description]
Returns a reference to the character at index `pos`.
[heading Complexity]
Constant.
[heading Precondition]
`pos >= size`
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to access.
]
]
]
[endsect]
[endsect]
[section:front basic_static_string::front]
[indexterm2 front..basic_static_string]
Return the first character.
```
constexpr reference
``[link static_string.ref.boost__static_strings__basic_static_string.front.overload1 front]``();
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.front.overload1 `more...`]]``
constexpr const_reference
``[link static_string.ref.boost__static_strings__basic_static_string.front.overload2 front]``() const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.front.overload2 `more...`]]``
```
[section:overload1 basic_static_string::front (1 of 2 overloads)]
Return the first character.
[heading Synopsis]
```
constexpr reference
front();
```
[heading Description]
Returns a reference to the first character.
[heading Complexity]
Constant.
[heading Precondition]
not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
[endsect]
[section:overload2 basic_static_string::front (2 of 2 overloads)]
Return the first character.
[heading Synopsis]
```
constexpr const_reference
front() const;
```
[heading Description]
Returns a reference to the first character.
[heading Complexity]
Constant.
[heading Precondition]
not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
[endsect]
[endsect]
[section:back basic_static_string::back]
[indexterm2 back..basic_static_string]
Return the last character.
```
constexpr reference
``[link static_string.ref.boost__static_strings__basic_static_string.back.overload1 back]``();
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.back.overload1 `more...`]]``
constexpr const_reference
``[link static_string.ref.boost__static_strings__basic_static_string.back.overload2 back]``() const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.back.overload2 `more...`]]``
```
[section:overload1 basic_static_string::back (1 of 2 overloads)]
Return the last character.
[heading Synopsis]
```
constexpr reference
back();
```
[heading Description]
Returns a reference to the last character.
[heading Complexity]
Constant.
[heading Precondition]
not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
[endsect]
[section:overload2 basic_static_string::back (2 of 2 overloads)]
Return the last character.
[heading Synopsis]
```
constexpr const_reference
back() const;
```
[heading Description]
Returns a reference to the last character.
[heading Complexity]
Constant.
[heading Precondition]
not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
[endsect]
[endsect]
[section:data basic_static_string::data]
[indexterm2 data..basic_static_string]
Return a pointer to the string.
```
constexpr pointer
``[link static_string.ref.boost__static_strings__basic_static_string.data.overload1 data]``();
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.data.overload1 `more...`]]``
constexpr const_pointer
``[link static_string.ref.boost__static_strings__basic_static_string.data.overload2 data]``() const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.data.overload2 `more...`]]``
```
[section:overload1 basic_static_string::data (1 of 2 overloads)]
Return a pointer to the string.
[heading Synopsis]
```
constexpr pointer
data();
```
[heading Description]
Returns a pointer to the underlying array serving as storage. The value returned is such that the range {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]) is always a valid range, even if the container is empty.
[heading Complexity]
Constant.
[heading Remarks]
The value returned from this function is never never a null pointer value.
[endsect]
[section:overload2 basic_static_string::data (2 of 2 overloads)]
Return a pointer to the string.
[heading Synopsis]
```
constexpr const_pointer
data() const;
```
[heading Description]
Returns a pointer to the underlying array serving as storage. The value returned is such that the range {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]) is always a valid range, even if the container is empty.
[heading Complexity]
Constant.
[heading Remarks]
The value returned from this function is never never a null pointer value.
[endsect]
[endsect]
[section:c_str basic_static_string::c_str]
[indexterm2 c_str..basic_static_string]
Return a pointer to the string.
[heading Synopsis]
```
constexpr const_pointer
c_str() const;
```
[heading Description]
Returns a pointer to the underlying array serving as storage. The value returned is such that the range {[link static_string.ref.boost__static_strings__basic_static_string.c_str `c_str()`], [link static_string.ref.boost__static_strings__basic_static_string.c_str `c_str()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]) is always a valid range, even if the container is empty.
[heading Complexity]
Constant.
[heading Remarks]
The value returned from this function is never never a null pointer value.
[endsect]
[section:operator_string_view_type basic_static_string::operator string_view_type]
[indexterm2 operator string_view_type..basic_static_string]
Convert to a string view referring to the string.
[heading Synopsis]
```
constexpr
operator string_view_type() const;
```
[heading Description]
Returns a string view referring to the underlying character string.
[heading Complexity]
Constant.
[endsect]
[section:begin basic_static_string::begin]
[indexterm2 begin..basic_static_string]
Return an iterator to the beginning.
```
constexpr iterator
``[link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 begin]``();
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.begin.overload1 `more...`]]``
constexpr const_iterator
``[link static_string.ref.boost__static_strings__basic_static_string.begin.overload2 begin]``() const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.begin.overload2 `more...`]]``
```
[section:overload1 basic_static_string::begin (1 of 2 overloads)]
Return an iterator to the beginning.
[heading Synopsis]
```
constexpr iterator
begin();
```
[heading Description]
[endsect]
[section:overload2 basic_static_string::begin (2 of 2 overloads)]
Return an iterator to the beginning.
[heading Synopsis]
```
constexpr const_iterator
begin() const;
```
[heading Description]
[endsect]
[endsect]
[section:cbegin basic_static_string::cbegin]
[indexterm2 cbegin..basic_static_string]
Return an iterator to the beginning.
[heading Synopsis]
```
constexpr const_iterator
cbegin() const;
```
[heading Description]
[endsect]
[section:end basic_static_string::end]
[indexterm2 end..basic_static_string]
Return an iterator to the end.
```
constexpr iterator
``[link static_string.ref.boost__static_strings__basic_static_string.end.overload1 end]``();
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.end.overload1 `more...`]]``
constexpr const_iterator
``[link static_string.ref.boost__static_strings__basic_static_string.end.overload2 end]``() const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.end.overload2 `more...`]]``
```
[section:overload1 basic_static_string::end (1 of 2 overloads)]
Return an iterator to the end.
[heading Synopsis]
```
constexpr iterator
end();
```
[heading Description]
[endsect]
[section:overload2 basic_static_string::end (2 of 2 overloads)]
Return an iterator to the end.
[heading Synopsis]
```
constexpr const_iterator
end() const;
```
[heading Description]
[endsect]
[endsect]
[section:cend basic_static_string::cend]
[indexterm2 cend..basic_static_string]
Return an iterator to the end.
[heading Synopsis]
```
constexpr const_iterator
cend() const;
```
[heading Description]
[endsect]
[section:rbegin basic_static_string::rbegin]
[indexterm2 rbegin..basic_static_string]
Return a reverse iterator to the beginning.
```
constexpr reverse_iterator
``[link static_string.ref.boost__static_strings__basic_static_string.rbegin.overload1 rbegin]``();
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rbegin.overload1 `more...`]]``
constexpr const_reverse_iterator
``[link static_string.ref.boost__static_strings__basic_static_string.rbegin.overload2 rbegin]``() const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rbegin.overload2 `more...`]]``
```
[section:overload1 basic_static_string::rbegin (1 of 2 overloads)]
Return a reverse iterator to the beginning.
[heading Synopsis]
```
constexpr reverse_iterator
rbegin();
```
[heading Description]
[endsect]
[section:overload2 basic_static_string::rbegin (2 of 2 overloads)]
Return a reverse iterator to the beginning.
[heading Synopsis]
```
constexpr const_reverse_iterator
rbegin() const;
```
[heading Description]
[endsect]
[endsect]
[section:crbegin basic_static_string::crbegin]
[indexterm2 crbegin..basic_static_string]
Return a reverse iterator to the beginning.
[heading Synopsis]
```
constexpr const_reverse_iterator
crbegin() const;
```
[heading Description]
[endsect]
[section:rend basic_static_string::rend]
[indexterm2 rend..basic_static_string]
Return a reverse iterator to the end.
```
constexpr reverse_iterator
``[link static_string.ref.boost__static_strings__basic_static_string.rend.overload1 rend]``();
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rend.overload1 `more...`]]``
constexpr const_reverse_iterator
``[link static_string.ref.boost__static_strings__basic_static_string.rend.overload2 rend]``() const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rend.overload2 `more...`]]``
```
[section:overload1 basic_static_string::rend (1 of 2 overloads)]
Return a reverse iterator to the end.
[heading Synopsis]
```
constexpr reverse_iterator
rend();
```
[heading Description]
[endsect]
[section:overload2 basic_static_string::rend (2 of 2 overloads)]
Return a reverse iterator to the end.
[heading Synopsis]
```
constexpr const_reverse_iterator
rend() const;
```
[heading Description]
[endsect]
[endsect]
[section:crend basic_static_string::crend]
[indexterm2 crend..basic_static_string]
Return a reverse iterator to the end.
[heading Synopsis]
```
constexpr const_reverse_iterator
crend() const;
```
[heading Description]
[endsect]
[section:empty basic_static_string::empty]
[indexterm2 empty..basic_static_string]
Return if the string is empty.
[heading Synopsis]
```
BOOST_STATIC_STRING_NODISCARD constexpr bool
empty() const;
```
[heading Description]
Returns whether the string contains no characters.
[heading Complexity]
Constant.
[heading Return Value]
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] == 0
[endsect]
[section:size basic_static_string::size]
[indexterm2 size..basic_static_string]
Return the size of the string.
[heading Synopsis]
```
constexpr size_type
size() const;
```
[heading Description]
Returns the number of characters stored in the string, excluding the null terminator.
[heading Complexity]
Constant.
[endsect]
[section:length basic_static_string::length]
[indexterm2 length..basic_static_string]
Return the size of the string.
[heading Synopsis]
```
constexpr size_type
length() const;
```
[heading Description]
Returns the number of characters stored in the string, excluding the null terminator.
[heading Complexity]
Constant.
[endsect]
[section:max_size basic_static_string::max_size]
[indexterm2 max_size..basic_static_string]
Return the number of characters that can be stored.
[heading Synopsis]
```
constexpr size_type
max_size() const;
```
[heading Description]
Returns the maximum size of the string, excluding the null terminator. The returned value is always `N`.
[heading Complexity]
Constant.
[endsect]
[section:reserve basic_static_string::reserve]
[indexterm2 reserve..basic_static_string]
Increase the capacity.
[heading Synopsis]
```
constexpr void
reserve(
size_type n);
```
[heading Description]
This function has no effect.
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
n > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:capacity basic_static_string::capacity]
[indexterm2 capacity..basic_static_string]
Return the number of characters that can be stored.
[heading Synopsis]
```
constexpr size_type
capacity() const;
```
[heading Description]
Returns the maximum size of the string, excluding the null terminator. The returned value is always `N`.
[heading Complexity]
Constant.
[endsect]
[section:shrink_to_fit basic_static_string::shrink_to_fit]
[indexterm2 shrink_to_fit..basic_static_string]
Request the removal of unused capacity.
[heading Synopsis]
```
constexpr void
shrink_to_fit();
```
[heading Description]
This function has no effect.
[endsect]
[section:clear basic_static_string::clear]
[indexterm2 clear..basic_static_string]
Clear the contents.
[heading Synopsis]
```
constexpr void
clear();
```
[heading Description]
Erases all characters from the string. After this call, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] returns zero.
[heading Complexity]
Linear in [link static_string.ref.boost__static_strings__basic_static_string.size `size()`].
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[endsect]
[section:insert basic_static_string::insert]
[indexterm2 insert..basic_static_string]
Insert into the string.
```
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload1 insert]``(
size_type index,
size_type count,
value_type ch);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload1 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload2 insert]``(
size_type index,
const_pointer s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload2 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload3 insert]``(
size_type index,
const_pointer s,
size_type count);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload3 `more...`]]``
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload4 insert]``(
size_type index,
const basic_static_string< M, CharT, Traits >& str);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload4 `more...`]]``
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload5 insert]``(
size_type index,
const basic_static_string< M, CharT, Traits >& str,
size_type index_str,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload5 `more...`]]``
constexpr iterator
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload6 insert]``(
const_iterator pos,
value_type ch);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload6 `more...`]]``
constexpr iterator
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload7 insert]``(
const_iterator pos,
size_type count,
value_type ch);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload7 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr iterator
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload8 insert]``(
const_iterator pos,
InputIterator first,
InputIterator last);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload8 `more...`]]``
constexpr iterator
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload9 insert]``(
const_iterator pos,
std::initializer_list< value_type > ilist);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload9 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload10 insert]``(
size_type index,
const T& t);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload10 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.insert.overload11 insert]``(
size_type index,
const T& t,
size_type index_str,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.insert.overload11 `more...`]]``
```
[section:overload1 basic_static_string::insert (1 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
constexpr basic_static_string&
insert(
size_type index,
size_type count,
value_type ch);
```
[heading Description]
Inserts `count` copies of `ch` at the position `index`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`index`
]
[
The index to insert at.
]
]
[
[`count`
]
[
The number of characters to insert.
]
]
[
[`ch`
]
[
The character to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload2 basic_static_string::insert (2 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
constexpr basic_static_string&
insert(
size_type index,
const_pointer s);
```
[heading Description]
Inserts the null-terminated character string pointed to by `s` of length `count` at the position `index` where `count` is `traits_type::length(s)`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`index`
]
[
The index to insert at.
]
]
[
[`s`
]
[
The string to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload3 basic_static_string::insert (3 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
constexpr basic_static_string&
insert(
size_type index,
const_pointer s,
size_type count);
```
[heading Description]
Inserts `count` characters of the string pointed to by `s` at the position `index`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`index`
]
[
The index to insert at.
]
]
[
[`s`
]
[
The string to insert.
]
]
[
[`count`
]
[
The length of the string to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload4 basic_static_string::insert (4 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
insert(
size_type index,
const basic_static_string< M, CharT, Traits >& str);
```
[heading Description]
Inserts the string `str` at the position `index`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The insertion is done unchecked when the capacity of `str` differs from that of the string the function is called on.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the input string.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`index`
]
[
The index to insert at.
]
]
[
[`str`
]
[
The string to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + str.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload5 basic_static_string::insert (5 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
insert(
size_type index,
const basic_static_string< M, CharT, Traits >& str,
size_type index_str,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Inserts a string, obtained by `str.substr(index_str, count)` at the position `index`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The insertion is done unchecked when the capacity of `str` differs from that of the string the function is called on.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the input string.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`index`
]
[
The index to insert at.
]
]
[
[`str`
]
[
The string from which to insert.
]
]
[
[`index_str`
]
[
The index in `str` to start inserting from.
]
]
[
[`count`
]
[
The number of characters to insert. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + str.substr(index_str, count).[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
[
[`std::out_of_range`
]
[
`index_str > str.size()`
]
]
]
[endsect]
[section:overload6 basic_static_string::insert (6 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
constexpr iterator
insert(
const_iterator pos,
value_type ch);
```
[heading Description]
Inserts the character `ch` before the character pointed by `pos`.
[heading Precondition]
`pos`shall be vaild within {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
An iterator which refers to the first inserted character or `pos` if no characters were inserted
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to insert at.
]
]
[
[`ch`
]
[
The character to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + 1 > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload7 basic_static_string::insert (7 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
constexpr iterator
insert(
const_iterator pos,
size_type count,
value_type ch);
```
[heading Description]
Inserts `count` copies of `ch` before the character pointed by `pos`.
[heading Precondition]
`pos`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
An iterator which refers to the first inserted character or `pos` if no characters were inserted
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The position to insert at.
]
]
[
[`count`
]
[
The number of characters to insert.
]
]
[
[`ch`
]
[
The character to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload8 basic_static_string::insert (8 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr iterator
insert(
const_iterator pos,
InputIterator first,
InputIterator last);
```
[heading Description]
Inserts characters from the range `{first, last)` before the character pointed to by `pos`.
[heading Precondition]
`pos`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]} ,
`{first, last)` shall be a valid range
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`InputIterator`
]
[
The type of the iterators.
]
]
]
[heading Constraints]
`InputIterator`satisfies [*InputIterator] and does not satisfy [*ForwardIterator].
[heading Return Value]
An iterator which refers to the first inserted character or `pos` if no characters were inserted
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The position to insert at.
]
]
[
[`first`
]
[
An iterator representing the first character to insert.
]
]
[
[`last`
]
[
An iterator representing one past the last character to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + insert_count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload9 basic_static_string::insert (9 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
constexpr iterator
insert(
const_iterator pos,
std::initializer_list< value_type > ilist);
```
[heading Description]
Inserts characters from `ilist` before `pos`.
[heading Precondition]
`pos`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
An iterator which refers to the first inserted character or `pos` if no characters were inserted
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The position to insert at.
]
]
[
[`ilist`
]
[
The initializer list from which to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload10 basic_static_string::insert (10 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
insert(
size_type index,
const T& t);
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t` and inserts `{sv.begin(), sv.end())` at `index`.
[heading Precondition]
`index`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Parameters]
[table [[Name][Description]]
[
[`index`
]
[
The index to insert at.
]
]
[
[`t`
]
[
The string to insert from.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload11 basic_static_string::insert (11 of 11 overloads)]
Insert into the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
insert(
size_type index,
const T& t,
size_type index_str,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t` and inserts `sv.substr(index_str, count)` at `index`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const_pointer>::value`.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`index`
]
[
The index to insert at.
]
]
[
[`t`
]
[
The string to insert from.
]
]
[
[`index_str`
]
[
The index in the temporary `string_view_type` object to start the substring from.
]
]
[
[`count`
]
[
The number of characters to insert.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
[
[`std::out_of_range`
]
[
`index_str > sv.size()`
]
]
]
[endsect]
[endsect]
[section:erase basic_static_string::erase]
[indexterm2 erase..basic_static_string]
Erase from the string.
```
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.erase.overload1 erase]``(
size_type index = 0,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.erase.overload1 `more...`]]``
constexpr iterator
``[link static_string.ref.boost__static_strings__basic_static_string.erase.overload2 erase]``(
const_iterator pos);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.erase.overload2 `more...`]]``
constexpr iterator
``[link static_string.ref.boost__static_strings__basic_static_string.erase.overload3 erase]``(
const_iterator first,
const_iterator last);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.erase.overload3 `more...`]]``
```
[section:overload1 basic_static_string::erase (1 of 3 overloads)]
Erase from the string.
[heading Synopsis]
```
constexpr basic_static_string&
erase(
size_type index = 0,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Erases `num` characters from the string, starting at `index`. `num` is determined as the smaller of `count` and [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - index .
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`index`
]
[
The index to erase at. The default argument for this parameter is `0`.
]
]
[
[`count`
]
[
The number of characters to erase. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
index > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload2 basic_static_string::erase (2 of 3 overloads)]
Erase from the string.
[heading Synopsis]
```
constexpr iterator
erase(
const_iterator pos);
```
[heading Description]
Erases the character at `pos`.
[heading Preconditions]
`pos`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
An iterator referring to character immediately following the erased character, or [link static_string.ref.boost__static_strings__basic_static_string.end `end()`] if one does not exist.
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
An iterator referring to the character to erase.
]
]
]
[endsect]
[section:overload3 basic_static_string::erase (3 of 3 overloads)]
Erase from the string.
[heading Synopsis]
```
constexpr iterator
erase(
const_iterator first,
const_iterator last);
```
[heading Description]
Erases the characters in the range `{first, last)`.
[heading Precondition]
`{first, last}`shall be valid within {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`], [link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]}
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
An iterator referring to the character `last` previously referred to, or [link static_string.ref.boost__static_strings__basic_static_string.end `end()`] if one does not exist.
[heading Parameters]
[table [[Name][Description]]
[
[`first`
]
[
An iterator referring to the first character to erase.
]
]
[
[`last`
]
[
An iterator past the last character to erase.
]
]
]
[endsect]
[endsect]
[section:push_back basic_static_string::push_back]
[indexterm2 push_back..basic_static_string]
Append a character.
[heading Synopsis]
```
constexpr void
push_back(
value_type ch);
```
[heading Description]
Appends a character to the end of the string.
[heading Exception Safety]
Strong guarantee.
[heading Parameters]
[table [[Name][Description]]
[
[`ch`
]
[
The character to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] >= [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:pop_back basic_static_string::pop_back]
[indexterm2 pop_back..basic_static_string]
Remove the last character.
[heading Synopsis]
```
constexpr void
pop_back();
```
[heading Description]
Removes a character from the end of the string.
[heading Precondition]
not [link static_string.ref.boost__static_strings__basic_static_string.empty `empty()`]
[endsect]
[section:append basic_static_string::append]
[indexterm2 append..basic_static_string]
Append to the string.
```
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload1 append]``(
size_type count,
value_type ch);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload1 `more...`]]``
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload2 append]``(
const basic_static_string< M, CharT, Traits >& s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload2 `more...`]]``
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload3 append]``(
const basic_static_string< M, CharT, Traits >& s,
size_type pos,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload3 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload4 append]``(
const_pointer s,
size_type count);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload4 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload5 append]``(
const_pointer s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload5 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload6 append]``(
InputIterator first,
InputIterator last);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload6 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload7 append]``(
std::initializer_list< value_type > ilist);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload7 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload8 append]``(
const T& t);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload8 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.append.overload9 append]``(
const T& t,
size_type pos,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.append.overload9 `more...`]]``
```
[section:overload1 basic_static_string::append (1 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
constexpr basic_static_string&
append(
size_type count,
value_type ch);
```
[heading Description]
Appends `count` copies of `ch` to the end of the string.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`count`
]
[
The number of characters to append.
]
]
[
[`ch`
]
[
The character to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload2 basic_static_string::append (2 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
append(
const basic_static_string< M, CharT, Traits >& s);
```
[heading Description]
Appends `s` to the end of the string.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the string to append.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload3 basic_static_string::append (3 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
append(
const basic_static_string< M, CharT, Traits >& s,
size_type pos,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Appends the substring `sub` to the end of the string, where `sub` is `s.substr(pos, count)`.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the string to append.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to append.
]
]
[
[`pos`
]
[
The index at which to begin the substring.
]
]
[
[`count`
]
[
The size of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sub.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
`pos > s.size()`
]
]
]
[endsect]
[section:overload4 basic_static_string::append (4 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
constexpr basic_static_string&
append(
const_pointer s,
size_type count);
```
[heading Description]
Appends `count` characters from the string pointed to by `s` to the end of the string.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The string can contain null characters.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to append.
]
]
[
[`count`
]
[
The number of characters to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload5 basic_static_string::append (5 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
constexpr basic_static_string&
append(
const_pointer s);
```
[heading Description]
Appends `count` characters from the string pointed to by `s` to the end of the string, where `count` is `traits_type::length(s)`.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload6 basic_static_string::append (6 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
append(
InputIterator first,
InputIterator last);
```
[heading Description]
Appends characters from the range `{first, last)` to the end of the string.
[heading Precondition]
`{first, last)`shall be a valid range
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`InputIterator`
]
[
The type of the iterators.
]
]
]
[heading Constraints]
`InputIterator`satisfies [*InputIterator].
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`first`
]
[
An iterator referring to the first character to append.
]
]
[
[`last`
]
[
An iterator past the end of last character to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + std::distance(first, last) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload7 basic_static_string::append (7 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
constexpr basic_static_string&
append(
std::initializer_list< value_type > ilist);
```
[heading Description]
Appends the characters from `ilist` to the end of the string.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`ilist`
]
[
The initializer list to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload8 basic_static_string::append (8 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
append(
const T& t);
```
[heading Description]
Appends `sv` to the end of the string, where `sv` is `string_view_type(t)`.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
```
std::is_convertible<T const&, string_view>::value &&
!std::is_convertible<T const&, char const*>::value
```
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The string to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload9 basic_static_string::append (9 of 9 overloads)]
Append to the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
append(
const T& t,
size_type pos,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Appends the substring `sv` to the end of the string, where `sv` is `string_view_type(t).substr(pos, count)`.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
```
std::is_convertible<T const&, string_view>::value &&
!std::is_convertible<T const&, char const*>::value
```
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The object to append.
]
]
[
[`pos`
]
[
The index at which to begin the substring.
]
]
[
[`count`
]
[
The size of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[endsect]
[section:operator_plus__eq_ basic_static_string::operator+=]
[indexterm2 operator+=..basic_static_string]
Append to the string.
```
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload1 operator+=]``(
const basic_static_string< M, CharT, Traits >& s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload1 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload2 operator+=]``(
value_type ch);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload2 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload3 operator+=]``(
const_pointer s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload3 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload4 operator+=]``(
std::initializer_list< value_type > ilist);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload4 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload5 operator+=]``(
const T& t);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.operator_plus__eq_.overload5 `more...`]]``
```
[section:overload1 basic_static_string::operator+= (1 of 5 overloads)]
Append to the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
operator+=(
const basic_static_string< M, CharT, Traits >& s);
```
[heading Description]
Appends `s` to the end of the string.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the string to append.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload2 basic_static_string::operator+= (2 of 5 overloads)]
Append to the string.
[heading Synopsis]
```
constexpr basic_static_string&
operator+=(
value_type ch);
```
[heading Description]
Appends a character to the end of the string.
[heading Exception Safety]
Strong guarantee.
[heading Parameters]
[table [[Name][Description]]
[
[`ch`
]
[
The character to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] >= [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload3 basic_static_string::operator+= (3 of 5 overloads)]
Append to the string.
[heading Synopsis]
```
constexpr basic_static_string&
operator+=(
const_pointer s);
```
[heading Description]
Appends `count` characters from the string pointed to by `s` to the end of the string, where `count` is `traits_type::length(s)`.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + count > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload4 basic_static_string::operator+= (4 of 5 overloads)]
Append to the string.
[heading Synopsis]
```
constexpr basic_static_string&
operator+=(
std::initializer_list< value_type > ilist);
```
[heading Description]
Appends the characters from `ilist` to the end of the string.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`ilist`
]
[
The initializer list to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + ilist.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload5 basic_static_string::operator+= (5 of 5 overloads)]
Append to the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
operator+=(
const T& t);
```
[heading Description]
Appends `sv` to the end of the string, where `sv` is `string_view_type(t)`.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
```
std::is_convertible<T const&, string_view>::value &&
!std::is_convertible<T const&, char const*>::value
```
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The string to append.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + sv.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[endsect]
[section:compare basic_static_string::compare]
[indexterm2 compare..basic_static_string]
Compare a string with the string.
```
template<
std::size_t M>
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload1 compare]``(
const basic_static_string< M, CharT, Traits >& s) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload1 `more...`]]``
template<
std::size_t M>
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload2 compare]``(
size_type pos1,
size_type count1,
const basic_static_string< M, CharT, Traits >& s) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload2 `more...`]]``
template<
std::size_t M>
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload3 compare]``(
size_type pos1,
size_type count1,
const basic_static_string< M, CharT, Traits >& s,
size_type pos2,
size_type count2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload3 `more...`]]``
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload4 compare]``(
const_pointer s) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload4 `more...`]]``
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload5 compare]``(
size_type pos1,
size_type count1,
const_pointer s) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload5 `more...`]]``
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload6 compare]``(
size_type pos1,
size_type count1,
const_pointer s,
size_type count2) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload6 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload7 compare]``(
const T& t) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload7 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload8 compare]``(
size_type pos1,
size_type count1,
const T& t) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload8 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr int
``[link static_string.ref.boost__static_strings__basic_static_string.compare.overload9 compare]``(
size_type pos1,
size_type count1,
const T& t,
size_type pos2,
size_type count2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.compare.overload9 `more...`]]``
```
[section:overload1 basic_static_string::compare (1 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr int
compare(
const basic_static_string< M, CharT, Traits >& s) const;
```
[heading Description]
Let `comp` be traits_type::compare([link static_string.ref.boost__static_strings__basic_static_string.data `data()`], s.data(), std::min([link static_string.ref.boost__static_strings__basic_static_string.size `size()`], s.size()) . If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] == s.size() , `-1` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] < s.size() , and `1` otherwise.
[heading Complexity]
Linear.
[heading Return Value]
The result of lexicographically comparing `s` and the string.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the string to compare with.
]
]
]
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to compare.
]
]
]
[endsect]
[section:overload2 basic_static_string::compare (2 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr int
compare(
size_type pos1,
size_type count1,
const basic_static_string< M, CharT, Traits >& s) const;
```
[heading Description]
Let `sub` be `substr(pos1, count1)` and `comp` be `traits_type::compare(sub.data(), s.data(), std::min(sub.size(), s.size())`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub.size() == s.size()`, `-1` if `sub.size() < s.size()`, and `1` otherwise.
[heading Complexity]
Linear.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
The result of lexicographically comparing `sub` and `s`.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the string to compare with.
]
]
]
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index at which to begin the substring.
]
]
[
[`count1`
]
[
The size of the substring.
]
]
[
[`s`
]
[
The string to compare.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload3 basic_static_string::compare (3 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr int
compare(
size_type pos1,
size_type count1,
const basic_static_string< M, CharT, Traits >& s,
size_type pos2,
size_type count2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Let `sub1` be `substr(pos1, count1)`, `sub2` be `s.substr(pos2, count2)`, and `comp` be `traits_type::compare(sub1.data(), sub2.data(), std::min(sub1.size(), sub2.size())`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub1.size() == sub2.size()`, `-1` if `sub1.size() < sub2.size()`, and `1` otherwise.
[heading Complexity]
Linear.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
The result of lexicographically comparing `sub1` and `sub2`.
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index at which to begin the substring.
]
]
[
[`count1`
]
[
The size of the substring.
]
]
[
[`s`
]
[
The string to compare.
]
]
[
[`pos2`
]
[
The index at which to begin the substring to compare.
]
]
[
[`count2`
]
[
The size of the substring to compare.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
[
[`std::out_of_range`
]
[
`pos2 > s.size()`
]
]
]
[endsect]
[section:overload4 basic_static_string::compare (4 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
constexpr int
compare(
const_pointer s) const;
```
[heading Description]
Let `len` be `traits_type::length(s)` and `comp` be traits_type::compare([link static_string.ref.boost__static_strings__basic_static_string.data `data()`], s, std::min(size(), len) . If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] == len , `-1` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] < len , and `1` otherwise.
[heading Complexity]
Linear.
[heading Return Value]
The result of lexicographically comparing `s` and the string.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to compare.
]
]
]
[endsect]
[section:overload5 basic_static_string::compare (5 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
constexpr int
compare(
size_type pos1,
size_type count1,
const_pointer s) const;
```
[heading Description]
Let `sub` be `substr(pos1, count1)`, `len` be `traits_type::length(s)`, and `comp` be `traits_type::compare(sub.data(), s, std::min(size(), len)`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub.size() == len`, `-1` if `sub.size() < len`, and `1` otherwise.
[heading Complexity]
Linear.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
The result of lexicographically comparing `s` and `sub`.
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index at which to begin the substring.
]
]
[
[`count1`
]
[
The size of the substring.
]
]
[
[`s`
]
[
The string to compare.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload6 basic_static_string::compare (6 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
constexpr int
compare(
size_type pos1,
size_type count1,
const_pointer s,
size_type count2) const;
```
[heading Description]
Let `sub` be `substr(pos1, count1)`, and `comp` be `traits_type::compare(sub.data(), s, std::min(size(), count2)`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub.size() == count2`, `-1` if `sub.size() < count2`, and `1` otherwise.
[heading Complexity]
Linear.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
The result of lexicographically comparing `s` and `sub`.
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index at which to begin the substring.
]
]
[
[`count1`
]
[
The size of the substring.
]
]
[
[`s`
]
[
The string to compare.
]
]
[
[`count2`
]
[
The length of the string to compare.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload7 basic_static_string::compare (7 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr int
compare(
const T& t) const;
```
[heading Description]
Let `s` be `string_view_type(t)` and `comp` be traits_type::compare([link static_string.ref.boost__static_strings__basic_static_string.data `data()`], s.data(), std::min([link static_string.ref.boost__static_strings__basic_static_string.size `size()`], s.size()) . If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] == s.size() , `-1` if [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] < s.size() , and `1` otherwise.
[heading Complexity]
Linear.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
```
std::is_convertible<const T&, string_view>::value &&
!std::is_convertible<const T&, const_pointer>::value.
```
[heading Return Value]
The result of lexicographically comparing `s` and the string.
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The string to compare.
]
]
]
[endsect]
[section:overload8 basic_static_string::compare (8 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr int
compare(
size_type pos1,
size_type count1,
const T& t) const;
```
[heading Description]
Let `s` be `string_view_type(t)`, `sub` be `substr(pos1, count1)`, and `comp` be `traits_type::compare(sub.data(), s.data(), std::min(sub.size(), s.size())`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub.size() == s.size()`, `-1` if `sub.size() < s.size()`, and `1` otherwise.
[heading Complexity]
Linear.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
```
std::is_convertible<const T&, string_view>::value &&
!std::is_convertible<const T&, const_pointer>::value.
```
[heading Return Value]
The result of lexicographically comparing `s` and `sub`.
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index at which to begin the substring.
]
]
[
[`count1`
]
[
The length of the substring.
]
]
[
[`t`
]
[
The string to compare.
]
]
]
[endsect]
[section:overload9 basic_static_string::compare (9 of 9 overloads)]
Compare a string with the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr int
compare(
size_type pos1,
size_type count1,
const T& t,
size_type pos2,
size_type count2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Let `sub1` be `substr(pos1, count1)`, `sub2` be `string_view_type(t).substr(pos2, count2)`, and `comp` be `traits_type::compare(sub1.data(), sub2.data(), std::min(sub1.size(), sub2.size())`. If `comp != 0`, then the result is `comp`. Otherwise, the result is `0` if `sub1.size() == sub2.size()`, `-1` if `sub1.size() < sub2.size()`, and `1` otherwise.
[heading Complexity]
Linear.
[heading Exception Safety]
Strong guarantee.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
```
std::is_convertible<const T&, string_view>::value &&
!std::is_convertible<const T&, const_pointer>::value.
```
[heading Return Value]
The result of lexicographically comparing `sub1` and `sub2`.
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index at which to begin the substring in the string.
]
]
[
[`count1`
]
[
The length of the substring in the string.
]
]
[
[`t`
]
[
The string to compare.
]
]
[
[`pos2`
]
[
The index at which to begin the substring in the string view.
]
]
[
[`count2`
]
[
The length of the substring in the string view.
]
]
]
[endsect]
[endsect]
[section:substr basic_static_string::substr]
[indexterm2 substr..basic_static_string]
Return a substring.
[heading Synopsis]
```
constexpr basic_static_string
substr(
size_type pos = 0,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Returns a substring of the string.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
A string object containing the characters {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + pos, std::min(count, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos)) .
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to being the substring at. The default arugment for this parameter is `0`.
]
]
[
[`count`
]
[
The length of the substring. The default arugment for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:subview basic_static_string::subview]
[indexterm2 subview..basic_static_string]
Return a string view of a substring.
[heading Synopsis]
```
constexpr string_view_type
subview(
size_type pos = 0,
size_type count = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Returns a view of a substring.
[heading Exception Safety]
Strong guarantee.
[heading Return Value]
A `string_view_type` object referring to {[link static_string.ref.boost__static_strings__basic_static_string.data `data()`] + pos, std::min(count, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos)) .
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to being the substring at. The default arugment for this parameter is `0`.
]
]
[
[`count`
]
[
The length of the substring. The default arugment for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:copy basic_static_string::copy]
[indexterm2 copy..basic_static_string]
Copy a substring to another string.
[heading Synopsis]
```
constexpr size_type
copy(
pointer dest,
size_type count,
size_type pos = 0) const;
```
[heading Description]
Copies std::min(count, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos) characters starting at index `pos` to the string pointed to by `dest`.
[heading Remarks]
The resulting string is not null terminated.
[heading Return Value]
The number of characters copied.
[heading Parameters]
[table [[Name][Description]]
[
[`count`
]
[
The number of characters to copy.
]
]
[
[`dest`
]
[
The string to copy to.
]
]
[
[`pos`
]
[
The index to begin copying from. The default argument for this parameter is `0`.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
pos > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:resize basic_static_string::resize]
[indexterm2 resize..basic_static_string]
Change the size of the string.
```
constexpr void
``[link static_string.ref.boost__static_strings__basic_static_string.resize.overload1 resize]``(
size_type n);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.resize.overload1 `more...`]]``
constexpr void
``[link static_string.ref.boost__static_strings__basic_static_string.resize.overload2 resize]``(
size_type n,
value_type c);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.resize.overload2 `more...`]]``
```
[section:overload1 basic_static_string::resize (1 of 2 overloads)]
Change the size of the string.
[heading Synopsis]
```
constexpr void
resize(
size_type n);
```
[heading Description]
Resizes the string to contain `n` characters. If n > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`], characters with the value `CharT()` are appended. Otherwise, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] is reduced to `n`.
[heading Parameters]
[table [[Name][Description]]
[
[`n`
]
[
The size to resize the string to.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
n > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload2 basic_static_string::resize (2 of 2 overloads)]
Change the size of the string.
[heading Synopsis]
```
constexpr void
resize(
size_type n,
value_type c);
```
[heading Description]
Resizes the string to contain `n` characters. If n > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`], copies of `c` are appended. Otherwise, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] is reduced to `n`.
[heading Parameters]
[table [[Name][Description]]
[
[`n`
]
[
The size to resize the string to.
]
]
[
[`c`
]
[
The characters to append if the size increases.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::out_of_range`
]
[
n > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[endsect]
[section:swap basic_static_string::swap]
[indexterm2 swap..basic_static_string]
Swap two strings.
```
constexpr void
``[link static_string.ref.boost__static_strings__basic_static_string.swap.overload1 swap]``(
basic_static_string& s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.swap.overload1 `more...`]]``
template<
std::size_t M>
constexpr void
``[link static_string.ref.boost__static_strings__basic_static_string.swap.overload2 swap]``(
basic_static_string< M, CharT, Traits >& s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.swap.overload2 `more...`]]``
```
[section:overload1 basic_static_string::swap (1 of 2 overloads)]
Swap two strings.
[heading Synopsis]
```
constexpr void
swap(
basic_static_string& s);
```
[heading Description]
Swaps the contents of the string and `s`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to swap with.
]
]
]
[endsect]
[section:overload2 basic_static_string::swap (2 of 2 overloads)]
Swap two strings.
[heading Synopsis]
```
template<
std::size_t M>
constexpr void
swap(
basic_static_string< M, CharT, Traits >& s);
```
[heading Description]
Swaps the contents of the string and `s`.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the string to swap with.
]
]
]
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to swap with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
s.size() > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`] || [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] > s.max_size()
]
]
]
[endsect]
[endsect]
[section:replace basic_static_string::replace]
[indexterm2 replace..basic_static_string]
Replace a part of the string.
```
template<
size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload1 replace]``(
size_type pos1,
size_type n1,
const basic_static_string< M, CharT, Traits >& str);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload1 `more...`]]``
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload2 replace]``(
size_type pos1,
size_type n1,
const basic_static_string< M, CharT, Traits >& str,
size_type pos2,
size_type n2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload2 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload3 replace]``(
size_type pos1,
size_type n1,
const T& t);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload3 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload4 replace]``(
size_type pos1,
size_type n1,
const T& t,
size_type pos2,
size_type n2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload4 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload5 replace]``(
size_type pos,
size_type n1,
const_pointer s,
size_type n2);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload5 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload6 replace]``(
size_type pos,
size_type n1,
const_pointer s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload6 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload7 replace]``(
size_type pos,
size_type n1,
size_type n2,
value_type c);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload7 `more...`]]``
template<
std::size_t M>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload8 replace]``(
const_iterator i1,
const_iterator i2,
const basic_static_string< M, CharT, Traits >& str);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload8 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload9 replace]``(
const_iterator i1,
const_iterator i2,
const T& t);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload9 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload10 replace]``(
const_iterator i1,
const_iterator i2,
const_pointer s,
size_type n);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload10 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload11 replace]``(
const_iterator i1,
const_iterator i2,
const_pointer s);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload11 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload12 replace]``(
const_iterator i1,
const_iterator i2,
size_type n,
value_type c);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload12 `more...`]]``
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload13 replace]``(
const_iterator i1,
const_iterator i2,
InputIterator j1,
InputIterator j2);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload13 `more...`]]``
constexpr basic_static_string&
``[link static_string.ref.boost__static_strings__basic_static_string.replace.overload14 replace]``(
const_iterator i1,
const_iterator i2,
std::initializer_list< value_type > il);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.replace.overload14 `more...`]]``
```
[section:overload1 basic_static_string::replace (1 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
template<
size_t M>
constexpr basic_static_string&
replace(
size_type pos1,
size_type n1,
const basic_static_string< M, CharT, Traits >& str);
```
[heading Description]
Replaces `rcount` characters starting at index `pos1` with those of `str`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos1) .
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The replacement is done unchecked when the capacity of `str` differs from that of the string the function is called on.
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the input string.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index to replace at.
]
]
[
[`n1`
]
[
The number of characters to replace.
]
]
[
[`str`
]
[
The string to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (str.size() - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload2 basic_static_string::replace (2 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
replace(
size_type pos1,
size_type n1,
const basic_static_string< M, CharT, Traits >& str,
size_type pos2,
size_type n2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Replaces `rcount` characters starting at index `pos1` with those of `str.subview(pos2, n2)`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos1) .
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The replacement is done unchecked when the capacity of `str` differs from that of the string the function is called on.
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index to replace at.
]
]
[
[`n1`
]
[
The number of characters to replace.
]
]
[
[`str`
]
[
The string to replace with.
]
]
[
[`pos2`
]
[
The index to begin the substring.
]
]
[
[`n2`
]
[
The length of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (std::min(str.size(), n2) - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
[
[`std::out_of_range`
]
[
`pos2 > str.size()`
]
]
]
[endsect]
[section:overload3 basic_static_string::replace (3 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
replace(
size_type pos1,
size_type n1,
const T& t);
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and replaces `rcount` characters starting at index `pos1` with those of `sv`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos1) .
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index to replace at.
]
]
[
[`n1`
]
[
The number of characters to replace.
]
]
[
[`t`
]
[
The object to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (sv.size() - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload4 basic_static_string::replace (4 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
replace(
size_type pos1,
size_type n1,
const T& t,
size_type pos2,
size_type n2 = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``);
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and replaces `rcount` characters starting at index `pos1` with those of `sv.substr(pos2, n2)`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos) .
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`pos1`
]
[
The index to replace at.
]
]
[
[`n1`
]
[
The number of characters to replace.
]
]
[
[`t`
]
[
The object to replace with.
]
]
[
[`pos2`
]
[
The index to begin the substring.
]
]
[
[`n2`
]
[
The length of the substring. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (std::min(n2, sv.size()) - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
pos1 > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
[
[`std::out_of_range`
]
[
`pos2 > sv.size()`
]
]
]
[endsect]
[section:overload5 basic_static_string::replace (5 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
constexpr basic_static_string&
replace(
size_type pos,
size_type n1,
const_pointer s,
size_type n2);
```
[heading Description]
Replaces `rcount` characters starting at index `pos` with those of `{s, s + n2)`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos) .
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to replace at.
]
]
[
[`n1`
]
[
The number of characters to replace.
]
]
[
[`s`
]
[
The string to replace with.
]
]
[
[`n2`
]
[
The length of the string to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (n2 - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload6 basic_static_string::replace (6 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
constexpr basic_static_string&
replace(
size_type pos,
size_type n1,
const_pointer s);
```
[heading Description]
Replaces `rcount` characters starting at index `pos` with those of `{s, s + len)`, where the length of the string `len` is `traits_type::length(s)` and `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos) .
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to replace at.
]
]
[
[`n1`
]
[
The number of characters to replace.
]
]
[
[`s`
]
[
The string to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (len - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload7 basic_static_string::replace (7 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
constexpr basic_static_string&
replace(
size_type pos,
size_type n1,
size_type n2,
value_type c);
```
[heading Description]
Replaces `rcount` characters starting at index `pos` with `n2` copies of `c`, where `rcount` is std::min(n1, [link static_string.ref.boost__static_strings__basic_static_string.size `size()`] - pos) .
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`pos`
]
[
The index to replace at.
]
]
[
[`n1`
]
[
The number of characters to replace.
]
]
[
[`n2`
]
[
The number of characters to replace with.
]
]
[
[`c`
]
[
The character to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (n2 - rcount) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
[
[`std::out_of_range`
]
[
pos > [link static_string.ref.boost__static_strings__basic_static_string.size `size()`]
]
]
]
[endsect]
[section:overload8 basic_static_string::replace (8 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr basic_static_string&
replace(
const_iterator i1,
const_iterator i2,
const basic_static_string< M, CharT, Traits >& str);
```
[heading Description]
Replaces the characters in the range `{i1, i2)` with those of `str`.
[heading Precondition]
`{i1, i2)`is a valid range.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
The replacement is done unchecked when the capacity of `str` differs from that of the string the function is called on.
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`M`
]
[
The size of the input string.
]
]
]
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`i1`
]
[
An iterator referring to the first character to replace.
]
]
[
[`i2`
]
[
An iterator referring past the end of the last character to replace.
]
]
[
[`str`
]
[
The string to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (str.size() - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload9 basic_static_string::replace (9 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
replace(
const_iterator i1,
const_iterator i2,
const T& t);
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and replaces the characters in the range `{i1, i2)` with those of `sv`.
[heading Precondition]
`{i1, i2)`is a valid range.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`i1`
]
[
An iterator referring to the first character to replace.
]
]
[
[`i2`
]
[
An iterator referring past the end of the last character to replace.
]
]
[
[`t`
]
[
The object to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (sv.size() - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload10 basic_static_string::replace (10 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
constexpr basic_static_string&
replace(
const_iterator i1,
const_iterator i2,
const_pointer s,
size_type n);
```
[heading Description]
Replaces the characters in the range `{i1, i2)` with those of `{s, s + n)`.
[heading Precondition]
`{i1, i2)`is a valid range.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`i1`
]
[
An iterator referring to the first character to replace.
]
]
[
[`i2`
]
[
An iterator referring past the end of the last character to replace.
]
]
[
[`s`
]
[
The string to replace with.
]
]
[
[`n`
]
[
The length of the string to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (n - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload11 basic_static_string::replace (11 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
constexpr basic_static_string&
replace(
const_iterator i1,
const_iterator i2,
const_pointer s);
```
[heading Description]
Replaces the characters in the range `{i1, i2)` with those of `{s, s + len)`, where the length of the string `len` is `traits_type::length(s)`.
[heading Precondition]
`{i1, i2)`shall be a valid range.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`i1`
]
[
An iterator referring to the first character to replace.
]
]
[
[`i2`
]
[
An iterator referring past the end of the last character to replace.
]
]
[
[`s`
]
[
The string to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (len - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload12 basic_static_string::replace (12 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
constexpr basic_static_string&
replace(
const_iterator i1,
const_iterator i2,
size_type n,
value_type c);
```
[heading Description]
Replaces the characters in the range `{i1, i2)` with `n` copies of `c`.
[heading Precondition]
`{i1, i2)`is a valid range.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`i1`
]
[
An iterator referring to the first character to replace.
]
]
[
[`i2`
]
[
An iterator past the end of the last character to replace.
]
]
[
[`n`
]
[
The number of characters to replace with.
]
]
[
[`c`
]
[
The character to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (n - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload13 basic_static_string::replace (13 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string&
replace(
const_iterator i1,
const_iterator i2,
InputIterator j1,
InputIterator j2);
```
[heading Description]
Replaces the characters in the range `{i1, i2)` with those of `{j1, j2)`.
[heading Precondition]
`{i1, i2)`is a valid range.
`{j1, j2)` is a valid range.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Template Parameters]
[table [[Type][Description]]
[
[`InputIterator`
]
[
The type of the iterators.
]
]
]
[heading Constraints]
`InputIterator`satisfies [*InputIterator] and does not satisfy [*ForwardIterator].
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`i1`
]
[
An iterator referring to the first character to replace.
]
]
[
[`i2`
]
[
An iterator referring past the end of the last character to replace.
]
]
[
[`j1`
]
[
An iterator referring to the first character to replace with.
]
]
[
[`j2`
]
[
An iterator referring past the end of the last character to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (inserted - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[section:overload14 basic_static_string::replace (14 of 14 overloads)]
Replace a part of the string.
[heading Synopsis]
```
constexpr basic_static_string&
replace(
const_iterator i1,
const_iterator i2,
std::initializer_list< value_type > il);
```
[heading Description]
Replaces the characters in the range `{i1, i2)` with those of contained in the initializer list `il`.
[heading Precondition]
`{i1, i2)`is a valid range.
[heading Exception Safety]
Strong guarantee.
[heading Remarks]
All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.
[heading Return Value]
`*this`
[heading Parameters]
[table [[Name][Description]]
[
[`i1`
]
[
An iterator referring to the first character to replace.
]
]
[
[`i2`
]
[
An iterator past the end of the last character to replace.
]
]
[
[`il`
]
[
The initializer list to replace with.
]
]
]
[heading Exceptions]
[table [[Type][Thrown On]]
[
[`std::length_error`
]
[
[link static_string.ref.boost__static_strings__basic_static_string.size `size()`] + (il.size() - std::distance(i1, i2)) > [link static_string.ref.boost__static_strings__basic_static_string.max_size `max_size()`]
]
]
]
[endsect]
[endsect]
[section:find basic_static_string::find]
[indexterm2 find..basic_static_string]
Find the first occurrence of a string within the string.
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find.overload1 find]``(
const T& t,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload1 `more...`]]``
template<
std::size_t M>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find.overload2 find]``(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload2 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find.overload3 find]``(
const_pointer s,
size_type pos,
size_type n) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload3 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find.overload4 find]``(
const_pointer s,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload4 `more...`]]``
```
Find the first occurrence of a character within the string.
```
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find.overload5 find]``(
value_type c,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find.overload5 `more...`]]``
```
[section:overload1 basic_static_string::find (1 of 5 overloads)]
Find the first occurrence of a string within the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
find(
const T& t,
size_type pos = 0) const;
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and finds the first occurrence of `sv` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Remarks]
An empty string is always found.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
The lowest index `idx` greater than or equal to `pos` where each element of `{sv.begin(), sv.end())` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx + count) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The string to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload2 basic_static_string::find (2 of 5 overloads)]
Find the first occurrence of a string within the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr size_type
find(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of `str` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The lowest index `idx` greater than or equal to `pos` where each element of `str` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx + str.size()) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`str`
]
[
The string to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload3 basic_static_string::find (3 of 5 overloads)]
Find the first occurrence of a string within the string.
[heading Synopsis]
```
constexpr size_type
find(
const_pointer s,
size_type pos,
size_type n) const;
```
[heading Description]
Finds the first occurrence of the string pointed to by `s` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Remarks]
An empty string is always found.
[heading Return Value]
The lowest index `idx` greater than or equal to `pos` where each element of `{s, s + n)` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx + n) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to search for.
]
]
[
[`pos`
]
[
The index to start searching at.
]
]
[
[`n`
]
[
The length of the string to search for.
]
]
]
[endsect]
[section:overload4 basic_static_string::find (4 of 5 overloads)]
Find the first occurrence of a string within the string.
[heading Synopsis]
```
constexpr size_type
find(
const_pointer s,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of the string pointed to by `s` of length `count` within the string starting at the index `pos`, where `count` is `traits_type::length(s)`.
[heading Complexity]
Linear.
[heading Remarks]
An empty string is always found.
[heading Return Value]
The lowest index `idx` greater than or equal to `pos` where each element of `{s, s + count)` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx + count) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload5 basic_static_string::find (5 of 5 overloads)]
Find the first occurrence of a character within the string.
[heading Synopsis]
```
constexpr size_type
find(
value_type c,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of `c` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first occurrence of `c` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`c`
]
[
The character to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[endsect]
[section:rfind basic_static_string::rfind]
[indexterm2 rfind..basic_static_string]
Find the last occurrence of a string within the string.
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload1 rfind]``(
const T& t,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload1 `more...`]]``
template<
std::size_t M>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload2 rfind]``(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload2 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload3 rfind]``(
const_pointer s,
size_type pos,
size_type n) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload3 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload4 rfind]``(
const_pointer s,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload4 `more...`]]``
```
Find the last occurrence of a character within the string.
```
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.rfind.overload5 rfind]``(
value_type c,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.rfind.overload5 `more...`]]``
```
[section:overload1 basic_static_string::rfind (1 of 5 overloads)]
Find the last occurrence of a string within the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
rfind(
const T& t,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and finds the last occurrence of `sv` within the string starting before or at the index `pos`.
[heading Complexity]
Linear.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
The highest index `idx` less than or equal to `pos` where each element of `{sv.begin(), sv.end())` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx + count) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The string to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload2 basic_static_string::rfind (2 of 5 overloads)]
Find the last occurrence of a string within the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr size_type
rfind(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of `str` within the string starting before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The highest index `idx` less than or equal to `pos` where each element of `str` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx + str.size()) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`str`
]
[
The string to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload3 basic_static_string::rfind (3 of 5 overloads)]
Find the last occurrence of a string within the string.
[heading Synopsis]
```
constexpr size_type
rfind(
const_pointer s,
size_type pos,
size_type n) const;
```
[heading Description]
Finds the last occurrence of the string pointed to by `s` within the string starting before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The highest index `idx` less than or equal to `pos` where each element of `{s, s + n)` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx + n) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to search for.
]
]
[
[`pos`
]
[
The index to start searching at.
]
]
[
[`n`
]
[
The length of the string to search for.
]
]
]
[endsect]
[section:overload4 basic_static_string::rfind (4 of 5 overloads)]
Find the last occurrence of a string within the string.
[heading Synopsis]
```
constexpr size_type
rfind(
const_pointer s,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of the string pointed to by `s` of length `count` within the string starting before or at the index `pos`, where `count` is `traits_type::length(s)`.
[heading Complexity]
Linear.
[heading Return Value]
The highest index `idx` less than or equal to `pos` where each element of `{s, s + count)` is equal to that of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx, [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + idx + count) if one exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to search for.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload5 basic_static_string::rfind (5 of 5 overloads)]
Find the last occurrence of a character within the string.
[heading Synopsis]
```
constexpr size_type
rfind(
value_type c,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of `c` within the string starting before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last occurrence of `c` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`c`
]
[
The character to search for.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[endsect]
[section:find_first_of basic_static_string::find_first_of]
[indexterm2 find_first_of..basic_static_string]
Find the first occurrence of any of the characters within the string.
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload1 find_first_of]``(
const T& t,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload1 `more...`]]``
template<
std::size_t M>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload2 find_first_of]``(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload2 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload3 find_first_of]``(
const_pointer s,
size_type pos,
size_type n) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload3 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload4 find_first_of]``(
const_pointer s,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload4 `more...`]]``
```
Find the first occurrence of a character within the string.
```
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload5 find_first_of]``(
value_type c,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_of.overload5 `more...`]]``
```
[section:overload1 basic_static_string::find_first_of (1 of 5 overloads)]
Find the first occurrence of any of the characters within the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
find_first_of(
const T& t,
size_type pos = 0) const;
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and finds the first occurrence of any of the characters in `sv` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
The index corrosponding to the first occurrence of any of the characters in `{sv.begin(), sv.end())` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The characters to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload2 basic_static_string::find_first_of (2 of 5 overloads)]
Find the first occurrence of any of the characters within the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr size_type
find_first_of(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of any of the characters within `str` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first occurrence of any of the characters of `str` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`str`
]
[
The characters to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload3 basic_static_string::find_first_of (3 of 5 overloads)]
Find the first occurrence of any of the characters within the string.
[heading Synopsis]
```
constexpr size_type
find_first_of(
const_pointer s,
size_type pos,
size_type n) const;
```
[heading Description]
Finds the first occurrence of any of the characters within the string pointed to by `s` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first occurrence of any of the characters in `{s, s + n)` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The characters to search for.
]
]
[
[`pos`
]
[
The index to start searching at.
]
]
[
[`n`
]
[
The length of the string to search for.
]
]
]
[endsect]
[section:overload4 basic_static_string::find_first_of (4 of 5 overloads)]
Find the first occurrence of any of the characters within the string.
[heading Synopsis]
```
constexpr size_type
find_first_of(
const_pointer s,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of the any of the characters within string pointed to by `s` of length `count` within the string starting at the index `pos`, where `count` is `traits_type::length(s)`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first occurrence of any of the characters in `{s, s + count)` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The characters to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload5 basic_static_string::find_first_of (5 of 5 overloads)]
Find the first occurrence of a character within the string.
[heading Synopsis]
```
constexpr size_type
find_first_of(
value_type c,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of `c` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first occurrence of `c` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`c`
]
[
The character to search for.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[endsect]
[section:find_last_of basic_static_string::find_last_of]
[indexterm2 find_last_of..basic_static_string]
Find the last occurrence of any of the characters within the string.
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload1 find_last_of]``(
const T& t,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload1 `more...`]]``
template<
std::size_t M>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload2 find_last_of]``(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload2 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload3 find_last_of]``(
const_pointer s,
size_type pos,
size_type n) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload3 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload4 find_last_of]``(
const_pointer s,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload4 `more...`]]``
```
Find the last occurrence of a character within the string.
```
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload5 find_last_of]``(
value_type c,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_of.overload5 `more...`]]``
```
[section:overload1 basic_static_string::find_last_of (1 of 5 overloads)]
Find the last occurrence of any of the characters within the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
find_last_of(
const T& t,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and finds the last occurrence of any of the characters in `sv` within the string before or at the index `pos`.
[heading Complexity]
Linear.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
The index corrosponding to the last occurrence of any of the characters in `{sv.begin(), sv.end())` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The characters to search for.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload2 basic_static_string::find_last_of (2 of 5 overloads)]
Find the last occurrence of any of the characters within the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr size_type
find_last_of(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of any of the characters within `str` within the string starting before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last occurrence of any of the characters of `str` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`str`
]
[
The characters to search for.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload3 basic_static_string::find_last_of (3 of 5 overloads)]
Find the last occurrence of any of the characters within the string.
[heading Synopsis]
```
constexpr size_type
find_last_of(
const_pointer s,
size_type pos,
size_type n) const;
```
[heading Description]
Finds the last occurrence of any of the characters within the string pointed to by `s` within the string before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last occurrence of any of the characters in `{s, s + n)` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The characters to search for.
]
]
[
[`pos`
]
[
The index to stop searching at.
]
]
[
[`n`
]
[
The length of the string to search for.
]
]
]
[endsect]
[section:overload4 basic_static_string::find_last_of (4 of 5 overloads)]
Find the last occurrence of any of the characters within the string.
[heading Synopsis]
```
constexpr size_type
find_last_of(
const_pointer s,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of any of the characters within the string pointed to by `s` of length `count` within the string before or at the index `pos`, where `count` is `traits_type::length(s)`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last occurrence of any of the characters in `{s, s + count)` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The characters to search for.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload5 basic_static_string::find_last_of (5 of 5 overloads)]
Find the last occurrence of a character within the string.
[heading Synopsis]
```
constexpr size_type
find_last_of(
value_type c,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of `c` within the string before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last occurrence of `c` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`c`
]
[
The character to search for.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[endsect]
[section:find_first_not_of basic_static_string::find_first_not_of]
[indexterm2 find_first_not_of..basic_static_string]
Find the first occurrence of a character not within the string.
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload1 find_first_not_of]``(
const T& t,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload1 `more...`]]``
```
Find the first occurrence of any of the characters not within the string.
```
template<
std::size_t M>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload2 find_first_not_of]``(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload2 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload3 find_first_not_of]``(
const_pointer s,
size_type pos,
size_type n) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload3 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload4 find_first_not_of]``(
const_pointer s,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload4 `more...`]]``
```
Find the first occurrence of a character not equal to `c`.
```
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload5 find_first_not_of]``(
value_type c,
size_type pos = 0) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_first_not_of.overload5 `more...`]]``
```
[section:overload1 basic_static_string::find_first_not_of (1 of 5 overloads)]
Find the first occurrence of a character not within the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
find_first_not_of(
const T& t,
size_type pos = 0) const;
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and finds the first character that is not within `sv`, starting at the index `pos`.
[heading Complexity]
Linear.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
The index corrosponding to the first occurrence of a character that is not in `{sv.begin(), sv.end())` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The characters to ignore.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload2 basic_static_string::find_first_not_of (2 of 5 overloads)]
Find the first occurrence of any of the characters not within the string.
[heading Synopsis]
```
template<
std::size_t M>
constexpr size_type
find_first_not_of(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of a character that is not within `str` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first character of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) that is not within `str` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`str`
]
[
The characters to ignore.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload3 basic_static_string::find_first_not_of (3 of 5 overloads)]
Find the first occurrence of any of the characters not within the string.
[heading Synopsis]
```
constexpr size_type
find_first_not_of(
const_pointer s,
size_type pos,
size_type n) const;
```
[heading Description]
Finds the first occurrence of a character that is not within the string pointed to by `s` within the string starting at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first character of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) that is not within `{s, s + n)` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The characters to ignore.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
[
[`n`
]
[
The length of the characters to ignore.
]
]
]
[endsect]
[section:overload4 basic_static_string::find_first_not_of (4 of 5 overloads)]
Find the first occurrence of any of the characters not within the string.
[heading Synopsis]
```
constexpr size_type
find_first_not_of(
const_pointer s,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of a character that is not within the string pointed to by `s` of length `count` within the string starting at the index `pos`, where `count` is `traits_type::length(s)`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first character of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) that is not within `{s, s + count)` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The characters to ignore.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[section:overload5 basic_static_string::find_first_not_of (5 of 5 overloads)]
Find the first occurrence of a character not equal to `c`.
[heading Synopsis]
```
constexpr size_type
find_first_not_of(
value_type c,
size_type pos = 0) const;
```
[heading Description]
Finds the first occurrence of a character that is not equal to `c`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the first character of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos, [link static_string.ref.boost__static_strings__basic_static_string.end `end()`]) that is not equal to `c` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`c`
]
[
The character to ignore.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is `0`.
]
]
]
[endsect]
[endsect]
[section:find_last_not_of basic_static_string::find_last_not_of]
[indexterm2 find_last_not_of..basic_static_string]
Find the last occurrence of a character not within the string.
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload1 find_last_not_of]``(
const T& t,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload1 `more...`]]``
template<
size_t M>
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload2 find_last_not_of]``(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload2 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload3 find_last_not_of]``(
const_pointer s,
size_type pos,
size_type n) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload3 `more...`]]``
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload4 find_last_not_of]``(
const_pointer s,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload4 `more...`]]``
```
Find the last occurrence of a character not equal to `c`.
```
constexpr size_type
``[link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload5 find_last_not_of]``(
value_type c,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.find_last_not_of.overload5 `more...`]]``
```
[section:overload1 basic_static_string::find_last_not_of (1 of 5 overloads)]
Find the last occurrence of a character not within the string.
[heading Synopsis]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr size_type
find_last_not_of(
const T& t,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Constructs a temporary `string_view_type` object `sv` from `t`, and finds the last character that is not within `sv`, starting at the index `pos`.
[heading Complexity]
Linear.
[heading Template Parameters]
[table [[Type][Description]]
[
[`T`
]
[
The type of the object to convert.
]
]
]
[heading Constraints]
`std::is_convertible<const T&, string_view>::value && !std::is_convertible<const T&, const CharT*>::value`.
[heading Return Value]
The index corrosponding to the last occurrence of a character that is not in `{sv.begin(), sv.end())` within {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`t`
]
[
The characters to ignore.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload2 basic_static_string::find_last_not_of (2 of 5 overloads)]
Find the last occurrence of a character not within the string.
[heading Synopsis]
```
template<
size_t M>
constexpr size_type
find_last_not_of(
const basic_static_string< M, CharT, Traits >& str,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of a character that is not within `str` within the string before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last character of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} that is not within `str` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`str`
]
[
The characters to ignore.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload3 basic_static_string::find_last_not_of (3 of 5 overloads)]
Find the last occurrence of a character not within the string.
[heading Synopsis]
```
constexpr size_type
find_last_not_of(
const_pointer s,
size_type pos,
size_type n) const;
```
[heading Description]
Finds the last occurrence of a character that is not within the string pointed to by `s` within the string before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last character of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} that is not within `{s, s + n)` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The characters to ignore.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
[
[`n`
]
[
The length of the characters to ignore.
]
]
]
[endsect]
[section:overload4 basic_static_string::find_last_not_of (4 of 5 overloads)]
Find the last occurrence of a character not within the string.
[heading Synopsis]
```
constexpr size_type
find_last_not_of(
const_pointer s,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of a character that is not within the string pointed to by `s` of length `count` within the string before or at the index `pos`, where `count` is `traits_type::length(s)`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last character of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} that is not within `{s, s + count)` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The characters to ignore.
]
]
[
[`pos`
]
[
The index to stop searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[section:overload5 basic_static_string::find_last_not_of (5 of 5 overloads)]
Find the last occurrence of a character not equal to `c`.
[heading Synopsis]
```
constexpr size_type
find_last_not_of(
value_type c,
size_type pos = ``[link static_string.ref.boost__static_strings__basic_static_string.npos npos]``) const;
```
[heading Description]
Finds the last occurrence of a character that is not equal to `c` before or at the index `pos`.
[heading Complexity]
Linear.
[heading Return Value]
The index corrosponding to the last character of {[link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`], [link static_string.ref.boost__static_strings__basic_static_string.begin `begin()`] + pos} that is not equal to `c` if it exists, and [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`] otherwise.
[heading Parameters]
[table [[Name][Description]]
[
[`c`
]
[
The character to ignore.
]
]
[
[`pos`
]
[
The index to start searching at. The default argument for this parameter is [link static_string.ref.boost__static_strings__basic_static_string.npos `npos`].
]
]
]
[endsect]
[endsect]
[section:starts_with basic_static_string::starts_with]
[indexterm2 starts_with..basic_static_string]
Return whether the string begins with a string.
```
constexpr bool
``[link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload1 starts_with]``(
string_view_type s) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload1 `more...`]]``
constexpr bool
``[link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload3 starts_with]``(
const_pointer s) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload3 `more...`]]``
```
Return whether the string begins with a character.
```
constexpr bool
``[link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload2 starts_with]``(
value_type c) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.starts_with.overload2 `more...`]]``
```
[section:overload1 basic_static_string::starts_with (1 of 3 overloads)]
Return whether the string begins with a string.
[heading Synopsis]
```
constexpr bool
starts_with(
string_view_type s) const;
```
[heading Description]
Returns `true` if the string begins with `s`, and `false` otherwise.
[heading Complexity]
Linear.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string view to check for.
]
]
]
[endsect]
[section:overload2 basic_static_string::starts_with (2 of 3 overloads)]
Return whether the string begins with a character.
[heading Synopsis]
```
constexpr bool
starts_with(
value_type c) const;
```
[heading Description]
Returns `true` if the string begins with `c`, and `false` otherwise.
[heading Complexity]
Constant.
[heading Parameters]
[table [[Name][Description]]
[
[`c`
]
[
The character to check for.
]
]
]
[endsect]
[section:overload3 basic_static_string::starts_with (3 of 3 overloads)]
Return whether the string begins with a string.
[heading Synopsis]
```
constexpr bool
starts_with(
const_pointer s) const;
```
[heading Description]
Returns `true` if the string begins with the string pointed to be `s` of length `traits_type::length(s)`, and `false` otherwise.
[heading Complexity]
Linear.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to check for.
]
]
]
[endsect]
[endsect]
[section:ends_with basic_static_string::ends_with]
[indexterm2 ends_with..basic_static_string]
Return whether the string ends with a string.
```
constexpr bool
``[link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload1 ends_with]``(
string_view_type s) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload1 `more...`]]``
constexpr bool
``[link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload3 ends_with]``(
const_pointer s) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload3 `more...`]]``
```
Return whether the string ends with a character.
```
constexpr bool
``[link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload2 ends_with]``(
value_type c) const;
``[''''&raquo;''' [link static_string.ref.boost__static_strings__basic_static_string.ends_with.overload2 `more...`]]``
```
[section:overload1 basic_static_string::ends_with (1 of 3 overloads)]
Return whether the string ends with a string.
[heading Synopsis]
```
constexpr bool
ends_with(
string_view_type s) const;
```
[heading Description]
Returns `true` if the string ends with `s`, and `false` otherwise.
[heading Complexity]
Linear.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string view to check for.
]
]
]
[endsect]
[section:overload2 basic_static_string::ends_with (2 of 3 overloads)]
Return whether the string ends with a character.
[heading Synopsis]
```
constexpr bool
ends_with(
value_type c) const;
```
[heading Description]
Returns `true` if the string ends with `c`, and `false` otherwise.
[heading Complexity]
Constant.
[heading Parameters]
[table [[Name][Description]]
[
[`c`
]
[
The character to check for.
]
]
]
[endsect]
[section:overload3 basic_static_string::ends_with (3 of 3 overloads)]
Return whether the string ends with a string.
[heading Synopsis]
```
constexpr bool
ends_with(
const_pointer s) const;
```
[heading Description]
Returns `true` if the string ends with the string pointed to be `s` of length `traits_type::length(s)`, and `false` otherwise.
[heading Complexity]
Linear.
[heading Parameters]
[table [[Name][Description]]
[
[`s`
]
[
The string to check for.
]
]
]
[endsect]
[endsect]
[endsect]
[section:std__hash_lt__basic_static_string__gt_ std::hash< basic_static_string >]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
struct hash< basic_static_string >
```
[heading Member Functions]
[table [[Name][Description]]
[
[[*[link static_string.ref.std__hash_lt__basic_static_string__gt_.operator_lp__rp_ operator()]]
]
[
]
]
]
[heading Description]
[section:operator_lp__rp_ std::hash< basic_static_string >::operator()]
[indexterm2 operator()..std::hash< basic_static_string >]
[heading Synopsis]
```
std::size_t
operator()(
const boost::static_strings::basic_static_string< N, CharT, Traits >& str) const;
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__basic_string_view basic_string_view]
[indexterm1 basic_string_view]
The type of `basic_string_view` used by the library.
[heading Synopsis]
Defined in header [include_file boost/static_string/config.hpp]
```
template<
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
using basic_string_view = #ifndef BOOST_STATIC_STRING_STANDALONE boost::basic_string_view< CharT, Traits >;
```
[heading Description]
[endsect]
[section:boost__static_strings__operator_eq__eq_ operator==]
[indexterm1 operator==]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_eq__eq_.overload1 operator==]``(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_eq__eq_.overload1 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_eq__eq_.overload2 operator==]``(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_eq__eq_.overload2 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_eq__eq_.overload3 operator==]``(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_eq__eq_.overload3 `more...`]]``
```
[section:overload1 operator== (1 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator==(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload2 operator== (2 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator==(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload3 operator== (3 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator==(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__operator_not__eq_ operator!=]
[indexterm1 operator!=]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_not__eq_.overload1 operator!=]``(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_not__eq_.overload1 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_not__eq_.overload2 operator!=]``(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_not__eq_.overload2 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_not__eq_.overload3 operator!=]``(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_not__eq_.overload3 `more...`]]``
```
[section:overload1 operator!= (1 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator!=(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload2 operator!= (2 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator!=(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload3 operator!= (3 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator!=(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__operator_lt_ operator<]
[indexterm1 operator<]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_lt_.overload1 operator<]``(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt_.overload1 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_lt_.overload2 operator<]``(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt_.overload2 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_lt_.overload3 operator<]``(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt_.overload3 `more...`]]``
```
[section:overload1 operator< (1 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator<(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload2 operator< (2 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator<(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload3 operator< (3 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator<(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__operator_lt__eq_ operator<=]
[indexterm1 operator<=]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_lt__eq_.overload1 operator<=]``(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt__eq_.overload1 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_lt__eq_.overload2 operator<=]``(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt__eq_.overload2 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_lt__eq_.overload3 operator<=]``(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_lt__eq_.overload3 `more...`]]``
```
[section:overload1 operator<= (1 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator<=(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload2 operator<= (2 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator<=(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload3 operator<= (3 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator<=(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__operator_gt_ operator>]
[indexterm1 operator>]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_gt_.overload1 operator>]``(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt_.overload1 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_gt_.overload2 operator>]``(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt_.overload2 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_gt_.overload3 operator>]``(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt_.overload3 `more...`]]``
```
[section:overload1 operator> (1 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator>(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload2 operator> (2 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator>(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload3 operator> (3 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator>(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__operator_gt__eq_ operator>=]
[indexterm1 operator>=]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_gt__eq_.overload1 operator>=]``(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt__eq_.overload1 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_gt__eq_.overload2 operator>=]``(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt__eq_.overload2 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
``[link static_string.ref.boost__static_strings__operator_gt__eq_.overload3 operator>=]``(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_gt__eq_.overload3 `more...`]]``
```
[section:overload1 operator>= (1 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator>=(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload2 operator>= (2 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator>=(
const CharT* lhs,
const basic_static_string< N, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload3 operator>= (3 of 3 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr bool
operator>=(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT* rhs);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__operator_plus_ operator+]
[indexterm1 operator+]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+M, CharT, Traits >
``[link static_string.ref.boost__static_strings__operator_plus_.overload1 operator+]``(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload1 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+1, CharT, Traits >
``[link static_string.ref.boost__static_strings__operator_plus_.overload2 operator+]``(
const basic_static_string< N, CharT, Traits >& lhs,
CharT rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload2 `more...`]]``
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+1, CharT, Traits >
``[link static_string.ref.boost__static_strings__operator_plus_.overload3 operator+]``(
CharT lhs,
const basic_static_string< N, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload3 `more...`]]``
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+M, CharT, Traits >
``[link static_string.ref.boost__static_strings__operator_plus_.overload4 operator+]``(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT(&) rhs \[M\]);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload4 `more...`]]``
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+M, CharT, Traits >
``[link static_string.ref.boost__static_strings__operator_plus_.overload5 operator+]``(
const CharT(&) lhs \[N\],
const basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__operator_plus_.overload5 `more...`]]``
```
[section:overload1 operator+ (1 of 5 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+M, CharT, Traits >
operator+(
const basic_static_string< N, CharT, Traits >& lhs,
const basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload2 operator+ (2 of 5 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+1, CharT, Traits >
operator+(
const basic_static_string< N, CharT, Traits >& lhs,
CharT rhs);
```
[heading Description]
[endsect]
[section:overload3 operator+ (3 of 5 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+1, CharT, Traits >
operator+(
CharT lhs,
const basic_static_string< N, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload4 operator+ (4 of 5 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+M, CharT, Traits >
operator+(
const basic_static_string< N, CharT, Traits >& lhs,
const CharT(&) rhs \[M\]);
```
[heading Description]
[endsect]
[section:overload5 operator+ (5 of 5 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N+M, CharT, Traits >
operator+(
const CharT(&) lhs \[N\],
const basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__erase_if erase_if]
[indexterm1 erase_if]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr basic_static_string< N, CharT, Traits >::size_type
erase_if(
basic_static_string< N, CharT, Traits >& str,
UnaryPredicate pred);
```
[heading Description]
[endsect]
[section:boost__static_strings__swap swap]
[indexterm1 swap]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr void
``[link static_string.ref.boost__static_strings__swap.overload1 swap]``(
basic_static_string< N, CharT, Traits >& lhs,
basic_static_string< N, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__swap.overload1 `more...`]]``
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr void
``[link static_string.ref.boost__static_strings__swap.overload2 swap]``(
basic_static_string< N, CharT, Traits >& lhs,
basic_static_string< M, CharT, Traits >& rhs);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__swap.overload2 `more...`]]``
```
[section:overload1 swap (1 of 2 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr void
swap(
basic_static_string< N, CharT, Traits >& lhs,
basic_static_string< N, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[section:overload2 swap (2 of 2 overloads)]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
std::size_t M,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
constexpr void
swap(
basic_static_string< N, CharT, Traits >& lhs,
basic_static_string< M, CharT, Traits >& rhs);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__operator_lt__lt_ operator<<]
[indexterm1 operator<<]
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
std::basic_ostream< CharT, Traits >&
operator<<(
std::basic_ostream< CharT, Traits >& os,
const basic_static_string< N, CharT, Traits >& s);
```
[heading Description]
[endsect]
[section:boost__static_strings__to_static_string to_static_string]
[indexterm1 to_static_string]
Converts `value` to a `static_string`
```
static_string< std::numeric_limits< int >::digits10+2 >
``[link static_string.ref.boost__static_strings__to_static_string.overload1 to_static_string]``(
int value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload1 `more...`]]``
static_string< std::numeric_limits< long >::digits10+2 >
``[link static_string.ref.boost__static_strings__to_static_string.overload2 to_static_string]``(
long value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload2 `more...`]]``
static_string< std::numeric_limits< long long >::digits10+2 >
``[link static_string.ref.boost__static_strings__to_static_string.overload3 to_static_string]``(
long long value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload3 `more...`]]``
static_string< std::numeric_limits< unsigned int >::digits10+1 >
``[link static_string.ref.boost__static_strings__to_static_string.overload4 to_static_string]``(
unsigned int value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload4 `more...`]]``
static_string< std::numeric_limits< unsigned long >::digits10+1 >
``[link static_string.ref.boost__static_strings__to_static_string.overload5 to_static_string]``(
unsigned long value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload5 `more...`]]``
static_string< std::numeric_limits< unsigned long long >::digits10+1 >
``[link static_string.ref.boost__static_strings__to_static_string.overload6 to_static_string]``(
unsigned long long value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload6 `more...`]]``
static_string< std::numeric_limits< float >::max_digits10+4 >
``[link static_string.ref.boost__static_strings__to_static_string.overload7 to_static_string]``(
float value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload7 `more...`]]``
static_string< std::numeric_limits< double >::max_digits10+4 >
``[link static_string.ref.boost__static_strings__to_static_string.overload8 to_static_string]``(
double value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload8 `more...`]]``
static_string< std::numeric_limits< long double >::max_digits10+4 >
``[link static_string.ref.boost__static_strings__to_static_string.overload9 to_static_string]``(
long double value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_string.overload9 `more...`]]``
```
[section:overload1 to_static_string (1 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< int >::digits10+2 >
to_static_string(
int value);
```
[heading Description]
[endsect]
[section:overload2 to_static_string (2 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< long >::digits10+2 >
to_static_string(
long value);
```
[heading Description]
[endsect]
[section:overload3 to_static_string (3 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< long long >::digits10+2 >
to_static_string(
long long value);
```
[heading Description]
[endsect]
[section:overload4 to_static_string (4 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< unsigned int >::digits10+1 >
to_static_string(
unsigned int value);
```
[heading Description]
[endsect]
[section:overload5 to_static_string (5 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< unsigned long >::digits10+1 >
to_static_string(
unsigned long value);
```
[heading Description]
[endsect]
[section:overload6 to_static_string (6 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< unsigned long long >::digits10+1 >
to_static_string(
unsigned long long value);
```
[heading Description]
[endsect]
[section:overload7 to_static_string (7 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< float >::max_digits10+4 >
to_static_string(
float value);
```
[heading Description]
[endsect]
[section:overload8 to_static_string (8 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< double >::max_digits10+4 >
to_static_string(
double value);
```
[heading Description]
[endsect]
[section:overload9 to_static_string (9 of 9 overloads)]
Converts `value` to a `static_string`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_string< std::numeric_limits< long double >::max_digits10+4 >
to_static_string(
long double value);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__to_static_wstring to_static_wstring]
[indexterm1 to_static_wstring]
Converts `value` to a `static_wstring`
```
static_wstring< std::numeric_limits< int >::digits10+2 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload1 to_static_wstring]``(
int value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload1 `more...`]]``
static_wstring< std::numeric_limits< long >::digits10+2 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload2 to_static_wstring]``(
long value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload2 `more...`]]``
static_wstring< std::numeric_limits< long long >::digits10+2 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload3 to_static_wstring]``(
long long value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload3 `more...`]]``
static_wstring< std::numeric_limits< unsigned int >::digits10+1 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload4 to_static_wstring]``(
unsigned int value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload4 `more...`]]``
static_wstring< std::numeric_limits< unsigned long >::digits10+1 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload5 to_static_wstring]``(
unsigned long value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload5 `more...`]]``
static_wstring< std::numeric_limits< unsigned long long >::digits10+1 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload6 to_static_wstring]``(
unsigned long long value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload6 `more...`]]``
static_wstring< std::numeric_limits< float >::max_digits10+4 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload7 to_static_wstring]``(
float value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload7 `more...`]]``
static_wstring< std::numeric_limits< double >::max_digits10+4 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload8 to_static_wstring]``(
double value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload8 `more...`]]``
static_wstring< std::numeric_limits< long double >::max_digits10+4 >
``[link static_string.ref.boost__static_strings__to_static_wstring.overload9 to_static_wstring]``(
long double value);
``[''''&raquo;''' [link static_string.ref.boost__static_strings__to_static_wstring.overload9 `more...`]]``
```
[section:overload1 to_static_wstring (1 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< int >::digits10+2 >
to_static_wstring(
int value);
```
[heading Description]
[endsect]
[section:overload2 to_static_wstring (2 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< long >::digits10+2 >
to_static_wstring(
long value);
```
[heading Description]
[endsect]
[section:overload3 to_static_wstring (3 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< long long >::digits10+2 >
to_static_wstring(
long long value);
```
[heading Description]
[endsect]
[section:overload4 to_static_wstring (4 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< unsigned int >::digits10+1 >
to_static_wstring(
unsigned int value);
```
[heading Description]
[endsect]
[section:overload5 to_static_wstring (5 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< unsigned long >::digits10+1 >
to_static_wstring(
unsigned long value);
```
[heading Description]
[endsect]
[section:overload6 to_static_wstring (6 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< unsigned long long >::digits10+1 >
to_static_wstring(
unsigned long long value);
```
[heading Description]
[endsect]
[section:overload7 to_static_wstring (7 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< float >::max_digits10+4 >
to_static_wstring(
float value);
```
[heading Description]
[endsect]
[section:overload8 to_static_wstring (8 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< double >::max_digits10+4 >
to_static_wstring(
double value);
```
[heading Description]
[endsect]
[section:overload9 to_static_wstring (9 of 9 overloads)]
Converts `value` to a `static_wstring`
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
static_wstring< std::numeric_limits< long double >::max_digits10+4 >
to_static_wstring(
long double value);
```
[heading Description]
[endsect]
[endsect]
[section:boost__static_strings__hash_value hash_value]
[indexterm1 hash_value]
hash_value overload for Boost.Container_Hash
[heading Synopsis]
Defined in header [include_file boost/static_string/static_string.hpp]
```
template<
std::size_t N,
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type],
[role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type][role red error.param neither has a declname nor a 'class ' prefix in the type]>
std::size_t
hash_value(
const basic_static_string< N, CharT, Traits >& str);
```
[heading Description]
[endsect]