Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches
helios::BasicCStringView< CharT, Traits > Class Template Reference

A view of a null-terminated C string. More...

#include <cstring_view.hpp>

Public Types

using traits_type = Traits
using value_type = CharT
using pointer = const CharT*
using const_pointer = const CharT*
using reference = const CharT&
using const_reference = const CharT&
using iterator = const CharT*
using const_iterator = const CharT*
using reverse_iterator = std::reverse_iterator<iterator>
using const_reverse_iterator = std::reverse_iterator<const_iterator>
using size_type = size_t
using difference_type = ptrdiff_t

Public Member Functions

 BasicCStringView ()=delete
constexpr BasicCStringView (const std::basic_string< CharT, Traits > &string) noexcept
 Constructs from a string.
constexpr BasicCStringView (const CharT *str) noexcept
 Constructs from a null-terminated C string.
 BasicCStringView (std::nullptr_t)=delete
constexpr BasicCStringView (const BasicCStringView &) noexcept=default
constexpr BasicCStringView (BasicCStringView &&) noexcept=default
constexpr ~BasicCStringView () noexcept=default
constexpr BasicCStringViewoperator= (const BasicCStringView &) noexcept=default
constexpr BasicCStringViewoperator= (BasicCStringView &&) noexcept=default
constexpr BasicCStringViewAssign (const std::basic_string< CharT, Traits > &string) noexcept
 Assigns a std::basic_string.
constexpr BasicCStringViewAssign (const CharT *str) noexcept
 Assigns a null-terminated C string.
constexpr size_type Copy (CharT *dest, size_type count, size_type pos=0) const noexcept
 Copies characters to a buffer.
constexpr void Swap (BasicCStringView &other) noexcept
 Swaps contents with another BasicCStringView.
constexpr int Compare (std::basic_string_view< CharT, Traits > other) const noexcept
 Compares with another string.
constexpr int Compare (BasicCStringView< CharT, Traits > other) const noexcept
 Compares with another c string view.
constexpr size_type Find (std::basic_string_view< CharT, Traits > sv, size_type pos=0) const noexcept
 Finds first occurrence of substring.
constexpr size_type Find (CharT ch, size_type pos=0) const noexcept
 Finds first occurrence of character.
constexpr size_type RFind (std::basic_string_view< CharT, Traits > sv, size_type pos=npos) const noexcept
 Finds last occurrence of substring.
constexpr size_type RFind (CharT ch, size_type pos=npos) const noexcept
 Finds last occurrence of character.
constexpr size_type FindFirstOf (std::basic_string_view< CharT, Traits > sv, size_type pos=0) const noexcept
 Finds first occurrence of any character in sv.
constexpr size_type FindLastOf (std::basic_string_view< CharT, Traits > sv, size_type pos=npos) const noexcept
 Finds last occurrence of any character in sv.
constexpr size_type FindFirstNotOf (std::basic_string_view< CharT, Traits > sv, size_type pos=0) const noexcept
 Finds first character not in sv.
constexpr size_type FindLastNotOf (std::basic_string_view< CharT, Traits > sv, size_type pos=npos) const noexcept
 Finds last character not in sv.
constexpr reference operator[] (size_type pos) noexcept
 Accesses character at specified position.
constexpr const_reference operator[] (size_type pos) const noexcept
 Accesses character at specified position (const).
constexpr BasicCStringViewoperator= (const std::basic_string< CharT, Traits > &string) noexcept
 Assigns a std::basic_string.
constexpr BasicCStringViewoperator= (const CharT *str) noexcept
 Assigns a null-terminated C string.
constexpr operator std::basic_string_view< CharT, Traits > () const noexcept
 Converts to std::basic_string_view.
constexpr auto operator<=> (BasicCStringView< CharT, Traits > other) const noexcept -> std::strong_ordering
constexpr auto operator<=> (std::basic_string_view< CharT, Traits > other) const noexcept -> std::strong_ordering
constexpr bool Empty () const noexcept
 Checks if the string is empty.
constexpr bool StartsWith (std::basic_string_view< CharT, Traits > sv) const noexcept
 Checks if string starts with prefix.
constexpr bool StartsWith (CharT ch) const noexcept
 Checks if string starts with character.
constexpr bool EndsWith (std::basic_string_view< CharT, Traits > sv) const noexcept
 Checks if string ends with suffix.
constexpr bool EndsWith (CharT ch) const noexcept
 Checks if string ends with character.
constexpr bool Contains (std::basic_string_view< CharT, Traits > sv) const noexcept
 Checks if string contains substring.
constexpr bool Contains (CharT ch) const noexcept
 Checks if string contains character.
constexpr size_type Size () const noexcept
 Returns the number of characters.
constexpr size_type Length () const noexcept
 Returns the number of characters.
constexpr reference At (size_type pos) noexcept
 Accesses character at specified position with bounds checking.
constexpr const_reference At (size_type pos) const noexcept
 Accesses character at specified position with bounds checking (const).
constexpr reference Front () noexcept
 Accesses the first character.
constexpr const_reference Front () const noexcept
 Accesses the first character (const).
constexpr reference Back () noexcept
 Accesses the last character.
constexpr const_reference Back () const noexcept
 Accesses the last character (const).
constexpr pointer Data () noexcept
 Returns pointer to the underlying character array.
constexpr const_pointer Data () const noexcept
 Returns pointer to the underlying character array (const).
constexpr const_pointer CStr () const noexcept
 Returns null-terminated C string.
constexpr std::basic_string_view< CharT, Traits > View () const noexcept
 Returns a std::basic_string_view of the content.
constexpr iterator begin () noexcept
constexpr const_iterator begin () const noexcept
constexpr const_iterator cbegin () const noexcept
constexpr iterator end () noexcept
constexpr const_iterator end () const noexcept
constexpr const_iterator cend () const noexcept
constexpr reverse_iterator rbegin () noexcept
constexpr const_reverse_iterator rbegin () const noexcept
constexpr const_reverse_iterator crbegin () const noexcept
constexpr reverse_iterator rend () noexcept
constexpr const_reverse_iterator rend () const noexcept
constexpr const_reverse_iterator crend () const noexcept

Static Public Attributes

static constexpr size_type npos = static_cast<size_type>(-1)

Friends

constexpr void swap (BasicCStringView &lhs, BasicCStringView &rhs) noexcept

Detailed Description

template<typename CharT, typename Traits = std::char_traits<CharT>>
class helios::BasicCStringView< CharT, Traits >

A view of a null-terminated C string.

Template Parameters
CharTCharacter type
TraitsCharacter traits type

Definition at line 22 of file cstring_view.hpp.

Member Typedef Documentation

◆ const_iterator

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::const_iterator = const CharT*

Definition at line 31 of file cstring_view.hpp.

◆ const_pointer

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::const_pointer = const CharT*

Definition at line 27 of file cstring_view.hpp.

◆ const_reference

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::const_reference = const CharT&

Definition at line 29 of file cstring_view.hpp.

◆ const_reverse_iterator

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Definition at line 33 of file cstring_view.hpp.

◆ difference_type

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::difference_type = ptrdiff_t

Definition at line 35 of file cstring_view.hpp.

◆ iterator

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::iterator = const CharT*

Definition at line 30 of file cstring_view.hpp.

◆ pointer

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::pointer = const CharT*

Definition at line 26 of file cstring_view.hpp.

◆ reference

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::reference = const CharT&

Definition at line 28 of file cstring_view.hpp.

◆ reverse_iterator

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::reverse_iterator = std::reverse_iterator<iterator>

Definition at line 32 of file cstring_view.hpp.

◆ size_type

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::size_type = size_t

Definition at line 34 of file cstring_view.hpp.

◆ traits_type

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::traits_type = Traits

Definition at line 24 of file cstring_view.hpp.

◆ value_type

template<typename CharT, typename Traits = std::char_traits<CharT>>
using helios::BasicCStringView< CharT, Traits >::value_type = CharT

Definition at line 25 of file cstring_view.hpp.

Constructor & Destructor Documentation

◆ BasicCStringView() [1/6]

template<typename CharT, typename Traits = std::char_traits<CharT>>
helios::BasicCStringView< CharT, Traits >::BasicCStringView ( )
delete

◆ BasicCStringView() [2/6]

template<typename CharT, typename Traits = std::char_traits<CharT>>
helios::BasicCStringView< CharT, Traits >::BasicCStringView ( const std::basic_string< CharT, Traits > & string)
inlineexplicitconstexprnoexcept

Constructs from a string.

Parameters
stringSource string

Definition at line 45 of file cstring_view.hpp.

◆ BasicCStringView() [3/6]

template<typename CharT, typename Traits = std::char_traits<CharT>>
helios::BasicCStringView< CharT, Traits >::BasicCStringView ( const CharT * str)
inlineconstexprnoexcept

Constructs from a null-terminated C string.

Parameters
strSource C string

Definition at line 53 of file cstring_view.hpp.

◆ BasicCStringView() [4/6]

template<typename CharT, typename Traits = std::char_traits<CharT>>
helios::BasicCStringView< CharT, Traits >::BasicCStringView ( std::nullptr_t )
delete

◆ BasicCStringView() [5/6]

template<typename CharT, typename Traits = std::char_traits<CharT>>
helios::BasicCStringView< CharT, Traits >::BasicCStringView ( const BasicCStringView< CharT, Traits > & )
constexprdefaultnoexcept

◆ BasicCStringView() [6/6]

template<typename CharT, typename Traits = std::char_traits<CharT>>
helios::BasicCStringView< CharT, Traits >::BasicCStringView ( BasicCStringView< CharT, Traits > && )
constexprdefaultnoexcept

◆ ~BasicCStringView()

template<typename CharT, typename Traits = std::char_traits<CharT>>
helios::BasicCStringView< CharT, Traits >::~BasicCStringView ( )
constexprdefaultnoexcept

Member Function Documentation

◆ Assign() [1/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::Assign ( const CharT * str)
constexprnoexcept

Assigns a null-terminated C string.

Parameters
strC string to assign
Returns
Reference to this

Definition at line 469 of file cstring_view.hpp.

◆ Assign() [2/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::Assign ( const std::basic_string< CharT, Traits > & string)
constexprnoexcept

Assigns a std::basic_string.

Parameters
stringString to assign
Returns
Reference to this

Definition at line 460 of file cstring_view.hpp.

◆ At() [1/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::At ( size_type pos) const
nodiscardconstexprnoexcept

Accesses character at specified position with bounds checking (const).

Warning
Triggers assertion if pos >= Size().
Parameters
posPosition of the character
Returns
Const reference to the character

Definition at line 557 of file cstring_view.hpp.

◆ At() [2/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::At ( size_type pos)
nodiscardconstexprnoexcept

Accesses character at specified position with bounds checking.

Warning
Triggers assertion if pos >= Size().
Parameters
posPosition of the character
Returns
Reference to the character

Definition at line 550 of file cstring_view.hpp.

◆ Back() [1/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::Back ( ) const
nodiscardconstexprnoexcept

Accesses the last character (const).

Warning
Triggers assertion if string is empty.
Returns
Const reference to the last character

Definition at line 583 of file cstring_view.hpp.

◆ Back() [2/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::Back ( )
nodiscardconstexprnoexcept

Accesses the last character.

Warning
Triggers assertion if string is empty.
Returns
Reference to the last character

Definition at line 577 of file cstring_view.hpp.

◆ begin() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_iterator helios::BasicCStringView< CharT, Traits >::begin ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 413 of file cstring_view.hpp.

◆ begin() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
iterator helios::BasicCStringView< CharT, Traits >::begin ( )
inlinenodiscardconstexprnoexcept

Definition at line 412 of file cstring_view.hpp.

◆ cbegin()

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_iterator helios::BasicCStringView< CharT, Traits >::cbegin ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 417 of file cstring_view.hpp.

◆ cend()

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_iterator helios::BasicCStringView< CharT, Traits >::cend ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 426 of file cstring_view.hpp.

◆ Compare() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
int helios::BasicCStringView< CharT, Traits >::Compare ( BasicCStringView< CharT, Traits > other) const
inlinenodiscardconstexprnoexcept

Compares with another c string view.

Parameters
otherC string view to compare with
Returns
Negative if less, zero if equal, positive if greater

Definition at line 116 of file cstring_view.hpp.

◆ Compare() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
int helios::BasicCStringView< CharT, Traits >::Compare ( std::basic_string_view< CharT, Traits > other) const
inlinenodiscardconstexprnoexcept

Compares with another string.

Parameters
otherString to compare with
Returns
Negative if less, zero if equal, positive if greater

Definition at line 106 of file cstring_view.hpp.

◆ Contains() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
bool helios::BasicCStringView< CharT, Traits >::Contains ( CharT ch) const
inlinenodiscardconstexprnoexcept

Checks if string contains character.

Parameters
chCharacter to search for
Returns
True if string contains ch

Definition at line 323 of file cstring_view.hpp.

◆ Contains() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
bool helios::BasicCStringView< CharT, Traits >::Contains ( std::basic_string_view< CharT, Traits > sv) const
inlinenodiscardconstexprnoexcept

Checks if string contains substring.

Parameters
svSubstring to search for
Returns
True if string contains sv

Definition at line 313 of file cstring_view.hpp.

◆ Copy()

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::Copy ( CharT * dest,
size_type count,
size_type pos = 0 ) const
constexprnoexcept

Copies characters to a buffer.

Warning
Triggers assertion if pos > Size().
Parameters
destDestination buffer
countMaximum number of characters to copy
posStarting position
Returns
Number of characters copied

Definition at line 477 of file cstring_view.hpp.

◆ crbegin()

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_reverse_iterator helios::BasicCStringView< CharT, Traits >::crbegin ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 438 of file cstring_view.hpp.

◆ crend()

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_reverse_iterator helios::BasicCStringView< CharT, Traits >::crend ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 450 of file cstring_view.hpp.

◆ CStr()

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_pointer helios::BasicCStringView< CharT, Traits >::CStr ( ) const
inlinenodiscardconstexprnoexcept

Returns null-terminated C string.

Returns
Null-terminated character array

Definition at line 401 of file cstring_view.hpp.

◆ Data() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_pointer helios::BasicCStringView< CharT, Traits >::Data ( ) const
inlinenodiscardconstexprnoexcept

Returns pointer to the underlying character array (const).

Returns
Const pointer to the character array

Definition at line 395 of file cstring_view.hpp.

◆ Data() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
pointer helios::BasicCStringView< CharT, Traits >::Data ( )
inlinenodiscardconstexprnoexcept

Returns pointer to the underlying character array.

Returns
Pointer to the character array

Definition at line 389 of file cstring_view.hpp.

◆ Empty()

template<typename CharT, typename Traits = std::char_traits<CharT>>
bool helios::BasicCStringView< CharT, Traits >::Empty ( ) const
inlinenodiscardconstexprnoexcept

Checks if the string is empty.

Returns
True if Size() == 0

Definition at line 268 of file cstring_view.hpp.

◆ end() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_iterator helios::BasicCStringView< CharT, Traits >::end ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 422 of file cstring_view.hpp.

◆ end() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
iterator helios::BasicCStringView< CharT, Traits >::end ( )
inlinenodiscardconstexprnoexcept

Definition at line 421 of file cstring_view.hpp.

◆ EndsWith() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
bool helios::BasicCStringView< CharT, Traits >::EndsWith ( CharT ch) const
inlinenodiscardconstexprnoexcept

Checks if string ends with character.

Parameters
chCharacter to check
Returns
True if string ends with ch

Definition at line 304 of file cstring_view.hpp.

◆ EndsWith() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
bool helios::BasicCStringView< CharT, Traits >::EndsWith ( std::basic_string_view< CharT, Traits > sv) const
inlinenodiscardconstexprnoexcept

Checks if string ends with suffix.

Parameters
svSuffix to check
Returns
True if string ends with sv

Definition at line 294 of file cstring_view.hpp.

◆ Find() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::Find ( CharT ch,
size_type pos = 0 ) const
inlinenodiscardconstexprnoexcept

Finds first occurrence of character.

Parameters
chCharacter to search for
posStarting position
Returns
Position of first occurrence, or npos if not found

Definition at line 139 of file cstring_view.hpp.

◆ Find() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::Find ( std::basic_string_view< CharT, Traits > sv,
size_type pos = 0 ) const
inlinenodiscardconstexprnoexcept

Finds first occurrence of substring.

Parameters
svSubstring to search for
posStarting position
Returns
Position of first occurrence, or npos if not found

Definition at line 127 of file cstring_view.hpp.

◆ FindFirstNotOf()

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::FindFirstNotOf ( std::basic_string_view< CharT, Traits > sv,
size_type pos = 0 ) const
inlinenodiscardconstexprnoexcept

Finds first character not in sv.

Parameters
svCharacters to exclude
posStarting position
Returns
Position of first non-matching character, or npos if not found

Definition at line 197 of file cstring_view.hpp.

◆ FindFirstOf()

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::FindFirstOf ( std::basic_string_view< CharT, Traits > sv,
size_type pos = 0 ) const
inlinenodiscardconstexprnoexcept

Finds first occurrence of any character in sv.

Parameters
svCharacters to search for
posStarting position
Returns
Position of first occurrence, or npos if not found

Definition at line 173 of file cstring_view.hpp.

◆ FindLastNotOf()

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::FindLastNotOf ( std::basic_string_view< CharT, Traits > sv,
size_type pos = npos ) const
inlinenodiscardconstexprnoexcept

Finds last character not in sv.

Parameters
svCharacters to exclude
posStarting position (searches backwards from here)
Returns
Position of last non-matching character, or npos if not found

Definition at line 209 of file cstring_view.hpp.

◆ FindLastOf()

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::FindLastOf ( std::basic_string_view< CharT, Traits > sv,
size_type pos = npos ) const
inlinenodiscardconstexprnoexcept

Finds last occurrence of any character in sv.

Parameters
svCharacters to search for
posStarting position (searches backwards from here)
Returns
Position of last occurrence, or npos if not found

Definition at line 185 of file cstring_view.hpp.

◆ Front() [1/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::Front ( ) const
nodiscardconstexprnoexcept

Accesses the first character (const).

Warning
Triggers assertion if string is empty.
Returns
Const reference to the first character

Definition at line 570 of file cstring_view.hpp.

◆ Front() [2/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::Front ( )
nodiscardconstexprnoexcept

Accesses the first character.

Warning
Triggers assertion if string is empty.
Returns
Reference to the first character

Definition at line 564 of file cstring_view.hpp.

◆ Length()

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::Length ( ) const
inlinenodiscardconstexprnoexcept

Returns the number of characters.

Returns
Number of characters (excluding null terminator)

Definition at line 337 of file cstring_view.hpp.

◆ operator std::basic_string_view< CharT, Traits >()

template<typename CharT, typename Traits = std::char_traits<CharT>>
helios::BasicCStringView< CharT, Traits >::operator std::basic_string_view< CharT, Traits > ( ) const
inlinenodiscardconstexprnoexcept

Converts to std::basic_string_view.

Returns
String view of the content

Definition at line 251 of file cstring_view.hpp.

◆ operator<=>() [1/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::operator<=> ( BasicCStringView< CharT, Traits > other) const -> std::strong_ordering
nodiscardconstexprnoexcept

Definition at line 522 of file cstring_view.hpp.

◆ operator<=>() [2/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::operator<=> ( std::basic_string_view< CharT, Traits > other) const -> std::strong_ordering
nodiscardconstexprnoexcept

Definition at line 536 of file cstring_view.hpp.

◆ operator=() [1/4]

template<typename CharT, typename Traits = std::char_traits<CharT>>
BasicCStringView & helios::BasicCStringView< CharT, Traits >::operator= ( BasicCStringView< CharT, Traits > && )
constexprdefaultnoexcept

◆ operator=() [2/4]

template<typename CharT, typename Traits = std::char_traits<CharT>>
BasicCStringView & helios::BasicCStringView< CharT, Traits >::operator= ( const BasicCStringView< CharT, Traits > & )
constexprdefaultnoexcept

◆ operator=() [3/4]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::operator= ( const CharT * str)
constexprnoexcept

Assigns a null-terminated C string.

Parameters
strC string to assign
Returns
Reference to this

Definition at line 515 of file cstring_view.hpp.

◆ operator=() [4/4]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::operator= ( const std::basic_string< CharT, Traits > & string)
constexprnoexcept

Assigns a std::basic_string.

Parameters
stringString to assign
Returns
Reference to this

Definition at line 507 of file cstring_view.hpp.

◆ operator[]() [1/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::operator[] ( size_type pos) const
nodiscardconstexprnoexcept

Accesses character at specified position (const).

Warning
Triggers assertion if pos >= Size().
Parameters
posPosition of the character
Returns
Const reference to the character

Definition at line 500 of file cstring_view.hpp.

◆ operator[]() [2/2]

template<typename CharT, typename Traits>
auto helios::BasicCStringView< CharT, Traits >::operator[] ( size_type pos)
nodiscardconstexprnoexcept

Accesses character at specified position.

Warning
Triggers assertion if pos >= Size().
Parameters
posPosition of the character
Returns
Reference to the character

Definition at line 493 of file cstring_view.hpp.

◆ rbegin() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_reverse_iterator helios::BasicCStringView< CharT, Traits >::rbegin ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 434 of file cstring_view.hpp.

◆ rbegin() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
reverse_iterator helios::BasicCStringView< CharT, Traits >::rbegin ( )
inlinenodiscardconstexprnoexcept

Definition at line 430 of file cstring_view.hpp.

◆ rend() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
const_reverse_iterator helios::BasicCStringView< CharT, Traits >::rend ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 446 of file cstring_view.hpp.

◆ rend() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
reverse_iterator helios::BasicCStringView< CharT, Traits >::rend ( )
inlinenodiscardconstexprnoexcept

Definition at line 442 of file cstring_view.hpp.

◆ RFind() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::RFind ( CharT ch,
size_type pos = npos ) const
inlinenodiscardconstexprnoexcept

Finds last occurrence of character.

Parameters
chCharacter to search for
posStarting position (searches backwards from here)
Returns
Position of last occurrence, or npos if not found

Definition at line 162 of file cstring_view.hpp.

◆ RFind() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::RFind ( std::basic_string_view< CharT, Traits > sv,
size_type pos = npos ) const
inlinenodiscardconstexprnoexcept

Finds last occurrence of substring.

Parameters
svSubstring to search for
posStarting position (searches backwards from here)
Returns
Position of last occurrence, or npos if not found

Definition at line 150 of file cstring_view.hpp.

◆ Size()

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::Size ( ) const
inlinenodiscardconstexprnoexcept

Returns the number of characters.

Returns
Number of characters (excluding null terminator)

Definition at line 331 of file cstring_view.hpp.

◆ StartsWith() [1/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
bool helios::BasicCStringView< CharT, Traits >::StartsWith ( CharT ch) const
inlinenodiscardconstexprnoexcept

Checks if string starts with character.

Parameters
chCharacter to check
Returns
True if string starts with ch

Definition at line 285 of file cstring_view.hpp.

◆ StartsWith() [2/2]

template<typename CharT, typename Traits = std::char_traits<CharT>>
bool helios::BasicCStringView< CharT, Traits >::StartsWith ( std::basic_string_view< CharT, Traits > sv) const
inlinenodiscardconstexprnoexcept

Checks if string starts with prefix.

Parameters
svPrefix to check
Returns
True if string starts with sv

Definition at line 275 of file cstring_view.hpp.

◆ Swap()

template<typename CharT, typename Traits>
void helios::BasicCStringView< CharT, Traits >::Swap ( BasicCStringView< CharT, Traits > & other)
constexprnoexcept

Swaps contents with another BasicCStringView.

Parameters
otherString to swap with

Definition at line 486 of file cstring_view.hpp.

◆ View()

template<typename CharT, typename Traits = std::char_traits<CharT>>
std::basic_string_view< CharT, Traits > helios::BasicCStringView< CharT, Traits >::View ( ) const
inlinenodiscardconstexprnoexcept

Returns a std::basic_string_view of the content.

Returns
String view of the content

Definition at line 407 of file cstring_view.hpp.

◆ swap

template<typename CharT, typename Traits = std::char_traits<CharT>>
void swap ( BasicCStringView< CharT, Traits > & lhs,
BasicCStringView< CharT, Traits > & rhs )
friend

Definition at line 96 of file cstring_view.hpp.

Member Data Documentation

◆ npos

template<typename CharT, typename Traits = std::char_traits<CharT>>
size_type helios::BasicCStringView< CharT, Traits >::npos = static_cast<size_type>(-1)
staticconstexpr

Definition at line 37 of file cstring_view.hpp.