AsmGrader 0.0.0
Loading...
Searching...
No Matches
asmgrader::StaticString< Size > Class Template Reference

A fully compile-time capable string type Guaranteed to be null-terminated. More...

#include <static_string.hpp>

Public Member Functions

constexpr StaticString ()=default
 
constexpr StaticString (const char(&input)[Size+1])
 
constexpr StaticString (const ranges::forward_range auto &rng)
 Do not include '\0'.
 
template<std::size_t Pos, std::size_t Len = std::numeric_limits<std::size_t>::max()>
requires (Pos <= Size)
constexpr auto substr () const
 
template<std::size_t N>
requires (N <= Size)
constexpr StaticString< Size - Nremove_prefix () const
 
template<std::size_t N>
requires (N <= Size)
constexpr StaticString< Size - Nremove_suffix () const
 
template<typename Range >
constexpr auto operator+ (const Range &rhs) const
 
constexpr std::size_t size () const
 
constexpr auto begin ()
 
constexpr auto begin () const
 
constexpr auto cbegin () const
 
constexpr auto end ()
 
constexpr auto end () const
 
constexpr auto cend () const
 
constexpr operator std::string_view () const
 
std::string str () const
 
constexpr char operator[] (std::size_t i) const
 
constexpr char & operator[] (std::size_t i)
 
constexpr char at (std::size_t i) const
 
constexpr char & at (std::size_t i)
 
template<std::size_t OtherSize>
constexpr auto operator<=> (const StaticString< OtherSize > &rhs) const
 
constexpr auto operator<=> (std::string_view rhs) const
 
template<std::size_t OtherSize>
constexpr bool operator== (const StaticString< OtherSize > &rhs) const
 
constexpr bool operator== (std::string_view rhs) const
 

Public Attributes

std::array< char, Size+1 > data {}
 

Detailed Description

template<std::size_t Size>
class asmgrader::StaticString< Size >

A fully compile-time capable string type Guaranteed to be null-terminated.

Constructor & Destructor Documentation

◆ StaticString() [1/3]

template<std::size_t Size>
asmgrader::StaticString< Size >::StaticString ( )
constexprdefault

◆ StaticString() [2/3]

template<std::size_t Size>
asmgrader::StaticString< Size >::StaticString ( const char(&) input[Size+1])
inlineconstexpr

◆ StaticString() [3/3]

template<std::size_t Size>
asmgrader::StaticString< Size >::StaticString ( const ranges::forward_range auto & rng)
inlineconstexpr

Do not include '\0'.

Member Function Documentation

◆ at() [1/2]

template<std::size_t Size>
char & asmgrader::StaticString< Size >::at ( std::size_t i)
inlineconstexpr

◆ at() [2/2]

template<std::size_t Size>
char asmgrader::StaticString< Size >::at ( std::size_t i) const
inlineconstexpr

◆ begin() [1/2]

template<std::size_t Size>
auto asmgrader::StaticString< Size >::begin ( )
inlineconstexpr

◆ begin() [2/2]

template<std::size_t Size>
auto asmgrader::StaticString< Size >::begin ( ) const
inlineconstexpr

◆ cbegin()

template<std::size_t Size>
auto asmgrader::StaticString< Size >::cbegin ( ) const
inlineconstexpr

◆ cend()

template<std::size_t Size>
auto asmgrader::StaticString< Size >::cend ( ) const
inlineconstexpr

◆ end() [1/2]

template<std::size_t Size>
auto asmgrader::StaticString< Size >::end ( )
inlineconstexpr

◆ end() [2/2]

template<std::size_t Size>
auto asmgrader::StaticString< Size >::end ( ) const
inlineconstexpr

◆ operator std::string_view()

template<std::size_t Size>
asmgrader::StaticString< Size >::operator std::string_view ( ) const
inlineconstexpr

◆ operator+()

template<std::size_t Size>
template<typename Range >
auto asmgrader::StaticString< Size >::operator+ ( const Range & rhs) const
inlineconstexpr

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

template<std::size_t Size>
template<std::size_t OtherSize>
auto asmgrader::StaticString< Size >::operator<=> ( const StaticString< OtherSize > & rhs) const
inlineconstexpr

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

template<std::size_t Size>
auto asmgrader::StaticString< Size >::operator<=> ( std::string_view rhs) const
inlineconstexpr

◆ operator==() [1/2]

template<std::size_t Size>
template<std::size_t OtherSize>
bool asmgrader::StaticString< Size >::operator== ( const StaticString< OtherSize > & rhs) const
inlineconstexpr

◆ operator==() [2/2]

template<std::size_t Size>
bool asmgrader::StaticString< Size >::operator== ( std::string_view rhs) const
inlineconstexpr

◆ operator[]() [1/2]

template<std::size_t Size>
char & asmgrader::StaticString< Size >::operator[] ( std::size_t i)
inlineconstexpr

◆ operator[]() [2/2]

template<std::size_t Size>
char asmgrader::StaticString< Size >::operator[] ( std::size_t i) const
inlineconstexpr

◆ remove_prefix()

template<std::size_t Size>
template<std::size_t N>
requires (N <= Size)
StaticString< Size - N > asmgrader::StaticString< Size >::remove_prefix ( ) const
inlineconstexpr

◆ remove_suffix()

template<std::size_t Size>
template<std::size_t N>
requires (N <= Size)
StaticString< Size - N > asmgrader::StaticString< Size >::remove_suffix ( ) const
inlineconstexpr

◆ size()

template<std::size_t Size>
std::size_t asmgrader::StaticString< Size >::size ( ) const
inlineconstexpr

◆ str()

template<std::size_t Size>
std::string asmgrader::StaticString< Size >::str ( ) const
inline

◆ substr()

template<std::size_t Size>
template<std::size_t Pos, std::size_t Len = std::numeric_limits<std::size_t>::max()>
requires (Pos <= Size)
auto asmgrader::StaticString< Size >::substr ( ) const
inlineconstexpr

Member Data Documentation

◆ data

template<std::size_t Size>
std::array<char, Size + 1> asmgrader::StaticString< Size >::data {}

The documentation for this class was generated from the following file: