#include <userver/utils/small_string.hpp>
An alternative to std::string with a custom SSO (small string optimization) container size. Unlike std::string, SmallString is not null-terminated thus it has no c_str(), data() returns a not null-terminated buffer.
Definition at line 26 of file small_string.hpp.
Public Types | |
| using | value_type = char |
| using | iterator = typename Container::iterator |
| using | const_iterator = typename Container::const_iterator |
Public Member Functions | |
| SmallString ()=default | |
| Create empty string. | |
| SmallString (const SmallString< N > &)=default | |
| Create a string from another one. | |
| SmallString (SmallString< N > &&) noexcept=default | |
| Create a string from another one. | |
| SmallString (std::string_view sv) | |
| Create a string from std::string_view. | |
| SmallString & | operator= (std::string_view sv) |
| Assign the value of other string_view to this string. | |
| SmallString & | operator= (const SmallString &)=default |
| Assign the value of other string to this string. | |
| SmallString & | operator= (SmallString &&) noexcept=default |
| Assign the value of other string to this string. | |
| SmallString & | operator+= (std::string_view sv) |
| SmallString & | operator+= (char c) |
| operator std::string_view () const | |
| Convert string to a std::string_view. | |
| const char & | operator[] (std::size_t pos) const |
| Read-only subscript access to the data contained in the string. | |
| char & | operator[] (std::size_t pos) |
| Subscript access to the data contained in the string. | |
| const char & | at (std::size_t pos) const |
| Provides access to the data contained in the string. | |
| char & | at (std::size_t pos) |
| Provides access to the data contained in the string. | |
| iterator | begin () noexcept |
| const_iterator | begin () const noexcept |
| iterator | end () noexcept |
| const_iterator | end () const noexcept |
| std::size_t | size () const noexcept |
| Get string size. | |
| const char * | data () const noexcept |
| Get pointer to data. | |
| char * | data () noexcept |
| Get pointer to data. | |
| void | resize (std::size_t n, char c) |
| Resize the string. If its length is increased, fill new chars with c. | |
| void | resize (std::size_t n) |
| Resize the string. If its length is increased, fill new chars with \0. | |
| template<class Operation> | |
| void | resize_and_overwrite (std::size_t size, Operation op) |
| Resize the string. Use op to write into the string and replace a sequence of characters. | |
| void | shrink_to_fit () |
| Shrink the string's size to fit all contents. | |
| std::size_t | capacity () const noexcept |
| Get current capacity. | |
| void | reserve (std::size_t n) |
| Reserve to n bytes. | |
| void | clear () noexcept |
| Clear the string. | |
| bool | empty () const noexcept |
| Is the string empty? | |
| char & | front () |
| Get a reference to the first character. | |
| const char & | front () const |
| Get a reference to the first character. | |
| char & | back () |
| Get a reference to the last character. | |
| const char & | back () const |
| Get a reference to the last character. | |
| void | push_back (char c) |
| Append a character to the string. | |
| void | append (std::string_view str) |
| Append contents of a string_view to the string. | |
| void | append (const char *begin, const char *end) |
| Append contents of a begin...end to the string. | |
| template<class InputIt> | |
| void | insert (const_iterator pos, InputIt begin, InputIt end) |
| Inserts elements from range [begin, end) before pos. | |
| void | pop_back () |
| Remove the last character from the string. | |
| using utils::SmallString< N >::const_iterator = typename Container::const_iterator |
Definition at line 80 of file small_string.hpp.
| using utils::SmallString< N >::iterator = typename Container::iterator |
Definition at line 78 of file small_string.hpp.
| using utils::SmallString< N >::value_type = char |
Definition at line 30 of file small_string.hpp.
|
explicit |
Create a string from std::string_view.
Definition at line 160 of file small_string.hpp.
| void utils::SmallString< N >::append | ( | const char * | begin, |
| const char * | end ) |
Append contents of a begin...end to the string.
Definition at line 287 of file small_string.hpp.
| void utils::SmallString< N >::append | ( | std::string_view | str | ) |
Append contents of a string_view to the string.
Definition at line 281 of file small_string.hpp.
| char & utils::SmallString< N >::at | ( | std::size_t | pos | ) |
Provides access to the data contained in the string.
Definition at line 210 of file small_string.hpp.
| const char & utils::SmallString< N >::at | ( | std::size_t | pos | ) | const |
Provides access to the data contained in the string.
Definition at line 204 of file small_string.hpp.
| char & utils::SmallString< N >::back | ( | ) |
Get a reference to the last character.
Definition at line 266 of file small_string.hpp.
| const char & utils::SmallString< N >::back | ( | ) | const |
Get a reference to the last character.
Definition at line 271 of file small_string.hpp.
|
noexcept |
Definition at line 221 of file small_string.hpp.
|
noexcept |
Definition at line 216 of file small_string.hpp.
|
noexcept |
Get current capacity.
Definition at line 326 of file small_string.hpp.
|
noexcept |
Clear the string.
Definition at line 336 of file small_string.hpp.
|
noexcept |
Get pointer to data.
Definition at line 241 of file small_string.hpp.
|
noexcept |
Get pointer to data.
Definition at line 246 of file small_string.hpp.
|
noexcept |
Is the string empty?
Definition at line 251 of file small_string.hpp.
|
noexcept |
Definition at line 231 of file small_string.hpp.
|
noexcept |
Definition at line 226 of file small_string.hpp.
| char & utils::SmallString< N >::front | ( | ) |
Get a reference to the first character.
Definition at line 256 of file small_string.hpp.
| const char & utils::SmallString< N >::front | ( | ) | const |
Get a reference to the first character.
Definition at line 261 of file small_string.hpp.
| void utils::SmallString< N >::insert | ( | SmallString< N >::const_iterator | pos, |
| InputIt | begin, | ||
| InputIt | end ) |
Inserts elements from range [begin, end) before pos.
Definition at line 293 of file small_string.hpp.
| utils::SmallString< N >::operator std::string_view | ( | ) | const |
Convert string to a std::string_view.
Definition at line 163 of file small_string.hpp.
|
inline |
Definition at line 58 of file small_string.hpp.
|
inline |
Definition at line 53 of file small_string.hpp.
| SmallString< N > & utils::SmallString< N >::operator= | ( | std::string_view | sv | ) |
Assign the value of other string_view to this string.
Definition at line 168 of file small_string.hpp.
| char & utils::SmallString< N >::operator[] | ( | std::size_t | pos | ) |
Subscript access to the data contained in the string.
Definition at line 199 of file small_string.hpp.
| const char & utils::SmallString< N >::operator[] | ( | std::size_t | pos | ) | const |
Read-only subscript access to the data contained in the string.
Definition at line 194 of file small_string.hpp.
| void utils::SmallString< N >::pop_back | ( | ) |
Remove the last character from the string.
Definition at line 298 of file small_string.hpp.
| void utils::SmallString< N >::push_back | ( | char | c | ) |
Append a character to the string.
Definition at line 276 of file small_string.hpp.
| void utils::SmallString< N >::reserve | ( | std::size_t | n | ) |
Reserve to n bytes.
Definition at line 331 of file small_string.hpp.
| void utils::SmallString< N >::resize | ( | std::size_t | n | ) |
Resize the string. If its length is increased, fill new chars with \0.
Definition at line 308 of file small_string.hpp.
| void utils::SmallString< N >::resize | ( | std::size_t | n, |
| char | c ) |
Resize the string. If its length is increased, fill new chars with c.
Definition at line 303 of file small_string.hpp.
| void utils::SmallString< N >::resize_and_overwrite | ( | std::size_t | size, |
| Operation | op ) |
Resize the string. Use op to write into the string and replace a sequence of characters.
Definition at line 314 of file small_string.hpp.
| void utils::SmallString< N >::shrink_to_fit | ( | ) |
Shrink the string's size to fit all contents.
Definition at line 321 of file small_string.hpp.
|
noexcept |
Get string size.
Definition at line 236 of file small_string.hpp.