Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
string_literal< N > Struct Template Reference

#include <string_literal.h>

Public Member Functions

constexpr string_literal (void)
 Empty string.
 
constexpr string_literal (const char(&str)[N])
 constructor
 
template<size_t S, size_t LEN = N-1>
requires (S+LEN < N)
constexpr auto substr (void) const
 get substring
 
constexpr operator const char * (void) const
 cast to C string
 
iterator
constexpr const char * begin (void) const
 
constexpr const char * end (void) const
 

Public Attributes

char value [N]
 

Static Public Attributes

static constexpr size_t size = N
 Number of chars in the string_literal.
 
static constexpr bool empty = (N==1)
 true is empty (i.e., == '\0')
 

Friends

std::ostream & operator<< (std::ostream &s, const string_literal< N > &str)
 forward 'value' to stream
 

compare two literals (constexpr)

template<size_t M>
constexpr bool operator== (string_literal< M > str) const
 
template<size_t M>
constexpr bool operator== (const char(&str)[M]) const
 
template<size_t M>
constexpr bool operator== (const char(&str)[M], string_literal< N > lit)
 

less operator (constexpr)

template<size_t M>
constexpr bool operator< (string_literal< M > str) const
 
template<size_t M>
constexpr bool operator< (const char(&str)[M]) const
 
template<size_t M>
constexpr bool operator< (const char(&str)[M], string_literal< N > lit)
 

concat two literals (constexpr)

template<size_t M>
constexpr string_literal< N+M-1 > operator+ (string_literal< M > str) const
 
template<size_t M>
constexpr auto operator+ (const char(&str)[M]) const
 
template<size_t M>
constexpr auto operator+ (const char(&str)[M], string_literal< N > lit)
 

Constructor & Destructor Documentation

◆ string_literal() [1/2]

constexpr string_literal ( void  )
inlineconstexpr

Empty string.

◆ string_literal() [2/2]

constexpr string_literal ( const char(&)  str[N])
inlineconstexpr

constructor

Member Function Documentation

◆ begin()

constexpr const char * begin ( void  ) const
inlineconstexpr

◆ end()

constexpr const char * end ( void  ) const
inlineconstexpr

◆ operator const char *()

constexpr operator const char * ( void  ) const
inlineconstexpr

cast to C string

◆ operator+() [1/2]

constexpr auto operator+ ( const char(&)  str[M]) const
inlineconstexpr

◆ operator+() [2/2]

constexpr string_literal< N+M-1 > operator+ ( string_literal< M >  str) const
inlineconstexpr

◆ operator<() [1/2]

constexpr bool operator< ( const char(&)  str[M]) const
inlineconstexpr

◆ operator<() [2/2]

constexpr bool operator< ( string_literal< M >  str) const
inlineconstexpr

◆ operator==() [1/2]

constexpr bool operator== ( const char(&)  str[M]) const
inlineconstexpr

◆ operator==() [2/2]

constexpr bool operator== ( string_literal< M >  str) const
inlineconstexpr

◆ substr()

constexpr auto substr ( void  ) const
inlineconstexpr

get substring

Friends And Related Function Documentation

◆ operator+

constexpr auto operator+ ( const char(&)  str[M],
string_literal< N >  lit 
)
friend

◆ operator<

constexpr bool operator< ( const char(&)  str[M],
string_literal< N >  lit 
)
friend

◆ operator<<

std::ostream & operator<< ( std::ostream &  s,
const string_literal< N > &  str 
)
friend

forward 'value' to stream

◆ operator==

constexpr bool operator== ( const char(&)  str[M],
string_literal< N >  lit 
)
friend

Member Data Documentation

◆ empty

constexpr bool empty = (N==1)
staticconstexpr

true is empty (i.e., == '\0')

◆ size

constexpr size_t size = N
staticconstexpr

Number of chars in the string_literal.

◆ value

char value[N]

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