xentara-utils v2.0.4
The Xentara Utility Library
|
A string with a fixed size. More...
#include <xentara/utils/string/FixedString.hpp>
Public Types | |
using | traits_type = CharTraits |
The character traits. | |
using | value_type = Char |
The character type. | |
using | size_type = std::size_t |
The type used for sizes. | |
using | difference_type = std::ptrdiff_t |
The type used for distances. | |
using | reference = value_type & |
A reference to an character. | |
using | const_reference = const value_type & |
A const reference to an character. | |
using | pointer = value_type * |
A pointer to an character. | |
using | const_pointer = const value_type * |
A const pointer to an character. | |
using | iterator = core::ContiguousIterator< pointer, BasicFixedString > |
An iterator. | |
using | const_iterator = core::ContiguousIterator< const_pointer, BasicFixedString > |
A const iterator. | |
using | reverse_iterator = std::reverse_iterator< iterator > |
An iterator for iterating in reverse order. | |
using | const_reverse_iterator = std::reverse_iterator< const_iterator > |
A const iterator for iterating in reverse order. | |
Public Member Functions | |
Constructors | |
constexpr | BasicFixedString () noexcept |
Default constructor. | |
constexpr | BasicFixedString (const BasicFixedString &) noexcept=default |
Copy constructor. | |
constexpr | BasicFixedString (UninitializedTag tag) noexcept |
Constructor for a string containing uninitialized characters. | |
constexpr | BasicFixedString (FillTag tag, Char character) noexcept |
Constructor for a string filled with a specific character. | |
constexpr | BasicFixedString (size_type count, Char character) |
Constructor for a string filled with a specific character, checking the size. | |
constexpr | BasicFixedString (const Char *string, FillTag tag) noexcept |
Constructor that copies characters from an array. | |
constexpr | BasicFixedString (const Char *string, size_type count) |
Constructor that copies characters from an array, checking the size. | |
constexpr | BasicFixedString (const Char *string) |
Constructor that copies a null-terminated string. | |
template<std::input_iterator InputIterator> | |
constexpr | BasicFixedString (InputIterator first, InputIterator last) |
Constructor that fills the string from a character sequence. | |
BasicFixedString (std::initializer_list< Char > characters) | |
Constructor that initializes the characters from an initializer list. | |
template<typename String > requires (std::is_convertible_v<const String &, std::basic_string_view<Char, CharTraits>> && !std::is_convertible_v<const String &, const Char *>) | |
constexpr | BasicFixedString (const String &string) |
Constructor that copies an arbitrary string. | |
template<typename String > requires (std::is_convertible_v<const String &, std::basic_string_view<Char, CharTraits>> && !std::is_convertible_v<const String &, const Char *>) | |
constexpr | BasicFixedString (const String &string, size_type position, FillTag tag) |
Constructor that copies a sub string of a string, up to a length of kSize characters. | |
template<typename String > requires (std::is_convertible_v<const String &, std::basic_string_view<Char, CharTraits>> && !std::is_convertible_v<const String &, const Char *>) | |
constexpr | BasicFixedString (const String &string, size_type position, size_type count) |
Constructor that copies a sub string of a string, up to a maximum length. | |
Assigning Values | |
constexpr auto | operator= (const BasicFixedString &) noexcept -> BasicFixedString &=default |
Copy assignment operator. | |
constexpr auto | operator= (const Char *string) -> BasicFixedString & |
Assignment operator for a null-terminated string. | |
constexpr auto | operator= (std::initializer_list< Char > characters) -> BasicFixedString & |
Assignment operator for an initializer list. | |
template<typename String > requires (std::is_convertible_v<const String &, std::basic_string_view<Char, CharTraits>> && !std::is_convertible_v<const String &, const Char *>) | |
constexpr auto | operator= (const String &string) -> BasicFixedString & |
Assignment operator for an arbitrary string. | |
constexpr auto | assign (FillTag tag, Char character) noexcept -> BasicFixedString & |
Fills the string with a specific character. | |
constexpr auto | assign (size_type count, Char character) -> BasicFixedString & |
Fills the string with a specific character, checking the size. | |
constexpr auto | assign (const BasicFixedString &string) noexcept -> BasicFixedString & |
Copies another fixed string of the same size. | |
constexpr auto | assign (const Char *string, FillTag tag) noexcept -> BasicFixedString & |
Copies characters from an array. | |
constexpr auto | assign (const Char *string, size_type count) -> BasicFixedString & |
Copies characters from an array, checking the size. | |
constexpr auto | assign (const Char *string) -> BasicFixedString & |
Copies a null-terminated string. | |
template<std::input_iterator InputIterator> | |
constexpr auto | assign (InputIterator first, InputIterator last) -> BasicFixedString & |
Copies a character range. | |
constexpr auto | assign (std::initializer_list< Char > characters) -> BasicFixedString & |
Copies the characters from an initializer list. | |
template<typename String > requires (std::is_convertible_v<const String &, std::basic_string_view<Char, CharTraits>> && !std::is_convertible_v<const String &, const Char *>) | |
constexpr auto | assign (const String &string) -> BasicFixedString & |
Copies an arbitrary string. | |
template<typename String > requires (std::is_convertible_v<const String &, std::basic_string_view<Char, CharTraits>> && !std::is_convertible_v<const String &, const Char *>) | |
constexpr auto | assign (const String &string, size_type position) -> BasicFixedString & |
Copies a sub string of a string. | |
template<typename String > requires (std::is_convertible_v<const String &, std::basic_string_view<Char, CharTraits>> && !std::is_convertible_v<const String &, const Char *>) | |
constexpr auto | assign (const String &string, size_type position, FillTag tag) -> BasicFixedString & |
Copies a sub string of a string, up to a length of kSize characters. | |
template<typename String > requires (std::is_convertible_v<const String &, std::basic_string_view<Char, CharTraits>> && !std::is_convertible_v<const String &, const Char *>) | |
constexpr auto | assign (const String &string, size_type position, size_type count) -> BasicFixedString & |
Copies a sub string of a string, up to a maximum length. | |
Character Access | |
constexpr | operator std::basic_string_view< Char, CharTraits > () const noexcept |
conversion to a string view | |
template<typename Allocator > | |
constexpr | operator std::basic_string< Char, CharTraits, Allocator > () const noexcept |
conversion to an std::string | |
constexpr auto | view () const noexcept -> std::basic_string_view< Char, CharTraits > |
Gets the data as a string view. | |
template<typename Allocator = std::allocator<Char>> | |
constexpr auto | str (const Allocator &allocator=Allocator()) const noexcept -> std::basic_string< Char, CharTraits, Allocator > |
Gets the data as an std::string. | |
constexpr auto | at (size_type index) const -> const_reference |
Accesses the character at a certain index. | |
constexpr auto | at (size_type index) -> reference |
Accesses the character at a certain index. | |
constexpr auto | operator[] (size_type index) const noexcept -> const_reference |
Subscript operator. | |
constexpr auto | operator[] (size_type index) noexcept -> reference |
Subscript operator. | |
constexpr auto | front () const noexcept -> const_reference |
Returns the first character. | |
constexpr auto | front () noexcept -> reference |
Returns the first character. | |
constexpr auto | back () const noexcept -> const_reference |
Returns the last character. | |
constexpr auto | back () noexcept -> reference |
Returns the last character. | |
constexpr auto | data () const noexcept -> const Char * |
Gets a pointer to the data. | |
constexpr auto | data () noexcept -> Char * |
Gets a pointer to the data. | |
constexpr auto | c_str () const noexcept -> const Char * |
Gets the data as a null terminated string. | |
Iterators | |
constexpr auto | begin () noexcept -> iterator |
Creates a begin iterator. | |
constexpr auto | begin () const noexcept -> const_iterator |
Creates a begin iterator. | |
constexpr auto | cbegin () const noexcept -> const_iterator |
Creates a begin iterator. | |
constexpr auto | end () noexcept -> iterator |
Creates an end iterator. | |
constexpr auto | end () const noexcept -> const_iterator |
Creates an end iterator. | |
constexpr auto | cend () const noexcept -> const_iterator |
Creates an end iterator. | |
constexpr auto | rbegin () noexcept -> reverse_iterator |
Creates a reverse begin iterator. | |
constexpr auto | rbegin () const noexcept -> const_reverse_iterator |
Creates a reverse begin iterator. | |
constexpr auto | crbegin () const noexcept -> const_reverse_iterator |
Creates a reverse begin iterator. | |
constexpr auto | rend () noexcept -> reverse_iterator |
Creates a reverse end iterator. | |
constexpr auto | rend () const noexcept -> const_reverse_iterator |
Creates a reverse end iterator. | |
constexpr auto | crend () const noexcept -> const_reverse_iterator |
Creates a reverse end iterator. | |
Finding Sub Strings | |
constexpr auto | starts_with (std::basic_string_view< Char, CharTraits > string) const noexcept -> bool |
Checks whether the string starts with a certain text. | |
constexpr auto | starts_with (Char character) const noexcept -> bool |
Checks whether the string starts with a certain character. | |
constexpr auto | starts_with (const Char *string) const -> bool |
Checks whether the string starts with a certain text. | |
constexpr auto | ends_with (std::basic_string_view< Char, CharTraits > string) const noexcept -> bool |
Checks whether the string ends with a certain text. | |
constexpr auto | ends_with (Char character) const noexcept -> bool |
Checks whether the string ends with a certain character. | |
constexpr auto | ends_with (const Char *string) const -> bool |
Checks whether the string ends with a certain text. | |
Static Public Attributes | |
static constexpr size_type | npos |
Special size value used for automatically determined lengths. | |
Size and Capacity | |
constexpr auto | empty () const noexcept -> bool |
Determines whether the string is empty. | |
constexpr auto | size () const noexcept -> size_type |
Gets the size. | |
constexpr auto | length () const noexcept -> size_type |
Alias for size() | |
constexpr auto | capacity () const noexcept -> size_type |
Gets the capacity of the string. | |
static constexpr auto | max_size () noexcept -> size_type |
Gets the maximum size. | |
A string with a fixed size.
Char | The character type |
kSize | The size of the string |
CharTraits | The char traits used for interacting with the standard C++ library |
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::const_iterator = core::ContiguousIterator<const_pointer, BasicFixedString> |
A const iterator.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::const_pointer = const value_type * |
A const pointer to an character.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::const_reference = const value_type & |
A const reference to an character.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::const_reverse_iterator = std::reverse_iterator<const_iterator> |
A const iterator for iterating in reverse order.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::difference_type = std::ptrdiff_t |
The type used for distances.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::iterator = core::ContiguousIterator<pointer, BasicFixedString> |
An iterator.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::pointer = value_type * |
A pointer to an character.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::reference = value_type & |
A reference to an character.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::reverse_iterator = std::reverse_iterator<iterator> |
An iterator for iterating in reverse order.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::size_type = std::size_t |
The type used for sizes.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::traits_type = CharTraits |
The character traits.
using xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::value_type = Char |
The character type.
|
constexprnoexcept |
Default constructor.
This constructor constructs a string that contains all 0 characters.
|
constexprdefaultnoexcept |
Copy constructor.
|
constexprnoexcept |
Constructor for a string containing uninitialized characters.
This constructor constructs a string with unitialized string data. You should overwrite the data with valid characters before using the string.
tag | Always pass kUninitialized as this parameter |
|
constexprnoexcept |
Constructor for a string filled with a specific character.
tag | Always pass kFill as this parameter |
character | The character to fill the string with |
|
constexpr |
Constructor for a string filled with a specific character, checking the size.
count | The number of repetitions of the character. This must be equal to kSize, or an exception of type std::length_error is thrown. |
character | The character to fill the string with. |
std::length_error | count is not equal to kSize. |
|
constexprnoexcept |
Constructor that copies characters from an array.
string | A pointer to the characters to copy. The pointer must point to a memory region that is at least kSize characters long. |
tag | Always pass kFill as this parameter |
|
constexpr |
Constructor that copies characters from an array, checking the size.
string | A pointer to the characters to copy. The pointer must point to a memory region that is at least count characters long. |
count | The number of characters to copy. This must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | count is not equal to kSize. |
|
constexpr |
Constructor that copies a null-terminated string.
string | The string to copy. The string must be null-terminated, and must be exactly kSize character long. |
std::length_error | The length of the string is not equal to kSize. |
|
constexpr |
Constructor that fills the string from a character sequence.
first | An iterator pointing to the first character to copy. |
last | An iterator pointing one position past the last character to copy. There must be exactly kSize characters between first and last, or an exception of type std::length_error is thrown. |
std::length_error | The length of the sequence [first, last) is not equal to kSize. |
xentara::utils::string::BasicFixedString< Char, kSize, CharTraits >::BasicFixedString | ( | std::initializer_list< Char > | characters | ) |
Constructor that initializes the characters from an initializer list.
characters | The characters to initialize the string with. The size of the initializer list must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | The size of the initializer list is not equal to kSize. |
|
explicitconstexpr |
Constructor that copies an arbitrary string.
String | The string type. Must be a type that is convertible to std::basic_string_view<Char, CharTraits>. |
string | The string to copy. The size of the string must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | The size of the string is not equal to kSize. |
|
constexpr |
Constructor that copies a sub string of a string, up to a length of kSize characters.
String | The string type. Must be a type that is convertible to std::basic_string_view<Char, CharTraits>. |
string | The string to copy from. The size of the string must be no less than position + kSize, or an exception of type std::length_error is thrown. |
position | The position of the sub string to copy. Must be a valid sub string position within string, meaning it must be between 0 and the size of the string contained in string, inclusively. |
tag | Always pass kFill as this parameter |
std::out_of_range | position is greater than the size of the string contained in string. |
std::length_error | The size of the string is less than position + kSize. |
|
constexpr |
Constructor that copies a sub string of a string, up to a maximum length.
String | The string type. Must be a type that is convertible to std::basic_string_view<Char, CharTraits>. |
string | The string to copy from. |
position | The position of the sub string to copy. |
count | The maximum length of the sub string to copy, or npos to always copy the remainder of the string. The length of the sub string is calculated in the same way as std::basic_string_view::substr(). Irrespective of the value of count, the effective length of the sub string must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | The effective length of the sub string is not equal to kSize. |
|
constexprnoexcept |
Copies another fixed string of the same size.
|
constexpr |
Copies a null-terminated string.
string | The string to copy. The string must be null-terminated, and must be exactly kSize character long. |
std::length_error | The length of the string is not equal to kSize. |
|
constexprnoexcept |
Copies characters from an array.
string | A pointer to the characters to copy. The pointer must point to a memory region that is at least kSize characters long. |
tag | Always pass kFill as this parameter |
|
constexpr |
Copies characters from an array, checking the size.
string | A pointer to the characters to copy. The pointer must point to a memory region that is at least count characters long. |
count | The number of characters to copy. This must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | count is not equal to kSize. |
|
constexpr |
Copies an arbitrary string.
String | The string type. Must be a type that is convertible to std::basic_string_view<Char, CharTraits>. |
string | The string to copy. The size of the string must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | The size of the string is not equal to kSize. |
|
constexpr |
Copies a sub string of a string.
String | The string type. Must be a type that is convertible to std::basic_string_view<Char, CharTraits>. |
string | The string to copy from. The size of the string must be equal to position + kSize, or an exception of type std::length_error is thrown. |
position | The position of the sub string to copy. Must be a valid sub string position within string, meaning it must be between 0 and the size of the string contained in string, inclusively. |
std::out_of_range | position is greater than the size of the string contained in string. |
std::length_error | The size of the string is not equal to position + kSize. |
|
constexpr |
Copies a sub string of a string, up to a length of kSize characters.
String | The string type. Must be a type that is convertible to std::basic_string_view<Char, CharTraits>. |
string | The string to copy from. The size of the string must be no less than position + kSize, or an exception of type std::length_error is thrown. |
position | The position of the sub string to copy. Must be a valid sub string position within string, meaning it must be between 0 and the size of the string contained in string, inclusively. |
tag | Always pass kFill as this parameter |
std::out_of_range | position is greater than the size of the string contained in string. |
std::length_error | The size of the string is less than position + kSize. |
|
constexpr |
Copies a sub string of a string, up to a maximum length.
String | The string type. Must be a type that is convertible to std::basic_string_view<Char, CharTraits>. |
string | The string to copy from. |
position | The position of the sub string to copy. Must be a valid sub string position within string, meaning it must be between 0 and the size of the string contained in string, inclusively. |
count | The maximum length of the sub string to copy, or npos to always copy the remainder of the string. The length of the sub string is calculated in the same way as std::basic_string_view::substr(). Irrespective of the value of count, the effective length of the sub string must be equal to kSize, or an exception of type std::length_error is thrown. |
std::out_of_range | position is greater than the size of the string contained in string. |
std::length_error | The effective length of the sub string is not equal to kSize. |
|
constexprnoexcept |
Fills the string with a specific character.
tag | Always pass kFill as this parameter |
character | The character to fill the string with |
|
constexpr |
Copies a character range.
first | An iterator pointing to the first character to copy. |
last | An iterator pointing one position past the last character to copy. There must be exactly kSize characters between first and last, or an exception of type std::length_error is thrown. |
std::length_error | The length of the sequence [first, last) is not equal to kSize. |
|
constexpr |
Fills the string with a specific character, checking the size.
count | The number of repetitions of the character. This must be equal to kSize, or an exception of type std::length_error is thrown. |
character | The character to fill the string with. |
std::length_error | count is not equal to kSize. |
|
constexpr |
Copies the characters from an initializer list.
characters | The characters to initialize the string with. The size of the initializer list must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | The size of the initializer list is not equal to kSize. |
|
constexpr |
Accesses the character at a certain index.
index | The index |
std::out_of_range | index is out of range |
|
constexpr |
Accesses the character at a certain index.
index | The index |
std::out_of_range | index is out of range |
|
constexprnoexcept |
Returns the last character.
|
constexprnoexcept |
Returns the last character.
|
constexprnoexcept |
Creates a begin iterator.
|
constexprnoexcept |
Creates a begin iterator.
|
constexprnoexcept |
Gets the data as a null terminated string.
|
constexprnoexcept |
Gets the capacity of the string.
|
constexprnoexcept |
Creates a begin iterator.
|
constexprnoexcept |
Creates an end iterator.
|
constexprnoexcept |
Creates a reverse begin iterator.
|
constexprnoexcept |
Creates a reverse end iterator.
|
constexprnoexcept |
Gets a pointer to the data.
|
constexprnoexcept |
Gets a pointer to the data.
The returned pointer points to a buffer that has enough room for size() characters, plus a terminating null character. It is safe to write to the position after the last character, but only a null character way be written there, or the null termination will be lost.
|
constexprnoexcept |
Determines whether the string is empty.
Since the string has a fixed size, this function will only return true for template instations with a kSize-parameter of 0.
|
constexprnoexcept |
Creates an end iterator.
|
constexprnoexcept |
Creates an end iterator.
|
constexprnoexcept |
Checks whether the string ends with a certain character.
|
constexpr |
Checks whether the string ends with a certain text.
|
constexprnoexcept |
Checks whether the string ends with a certain text.
|
constexprnoexcept |
Returns the first character.
|
constexprnoexcept |
Returns the first character.
|
constexprnoexcept |
Alias for size()
|
staticconstexprnoexcept |
Gets the maximum size.
|
constexprnoexcept |
conversion to an std::string
|
constexprnoexcept |
conversion to a string view
|
constexprdefaultnoexcept |
Copy assignment operator.
|
constexpr |
Assignment operator for a null-terminated string.
string | The string to copy. The string must be null-terminated, and must be exactly kSize character long. |
std::length_error | The length of the string is not equal to kSize. |
|
constexpr |
Assignment operator for an arbitrary string.
String | The string type. Must be a type that is convertible to std::basic_string_view<Char, CharTraits>. |
string | The string to copy. The size of the string must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | The size of the string is not equal to kSize. |
|
constexpr |
Assignment operator for an initializer list.
characters | The characters to initialize the string with. The size of the initializer list must be equal to kSize, or an exception of type std::length_error is thrown. |
std::length_error | The size of the initializer list is not equal to kSize. |
|
constexprnoexcept |
Subscript operator.
Returns a reference to the character at a certain index
index | The index |
|
constexprnoexcept |
Subscript operator.
Returns a reference to the character at a certain index
index | The index |
|
constexprnoexcept |
Creates a reverse begin iterator.
|
constexprnoexcept |
Creates a reverse begin iterator.
|
constexprnoexcept |
Creates a reverse end iterator.
|
constexprnoexcept |
Creates a reverse end iterator.
|
constexprnoexcept |
Gets the size.
|
constexprnoexcept |
Checks whether the string starts with a certain character.
|
constexpr |
Checks whether the string starts with a certain text.
|
constexprnoexcept |
Checks whether the string starts with a certain text.
|
constexprnoexcept |
Gets the data as an std::string.
|
constexprnoexcept |
Gets the data as a string view.
|
staticconstexpr |
Special size value used for automatically determined lengths.