jaulib v1.4.1-10-ga2c96e0
Jau Support Library (C++, Java, ..)
Loading...
Searching...
No Matches
jau::BasicStringLiteral< CharT, N > Class Template Reference

Static compile-time string literal storage. More...

#include <string_literal.hpp>

Inheritance diagram for jau::BasicStringLiteral< CharT, N >:
Collaboration diagram for jau::BasicStringLiteral< CharT, N >:

Public Types

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

Public Member Functions

constexpr BasicStringLiteral (BasicStringLiteral &&o) noexcept=default
 
template<std::convertible_to< CharT >... Chars>
requires (sizeof...(Chars) == N) && (... && !std::is_pointer_v<Chars>)
constexpr BasicStringLiteral (Chars... chars) noexcept
 
constexpr BasicStringLiteral (const BasicStringLiteral &o) noexcept=default
 
template<std::size_t S, std::size_t T>
requires (N == S + T)
constexpr BasicStringLiteral (const BasicStringLiteral< CharT, S > &s1, const BasicStringLiteral< CharT, T > &s2) noexcept
 
constexpr BasicStringLiteral (const CharT(&str)[N+1]) noexcept
 Implicit constructor from string literal const CharT (&str)[N+1], i.e. including EOS.
 
constexpr const_iterator begin () const noexcept
 
constexpr const char * c_str () const noexcept
 Returns c-string w/ EOS.
 
constexpr const_iterator cbegin () const noexcept
 
constexpr const_iterator cend () const noexcept
 
constexpr const_reverse_iterator crbegin () const noexcept
 
constexpr const_reverse_iterator crend () const noexcept
 
constexpr const_pointer data () const noexcept
 Returns c-string w/ EOS.
 
constexpr bool empty () const noexcept
 
constexpr const_iterator end () const noexcept
 
constexpr size_type length () const noexcept
 string literal size w/o EOS.
 
constexpr size_type max_size () const noexcept
 string literal size w/o EOS.
 
constexpr operator std::basic_string_view< CharT > () const noexcept
 
template<std::size_t N2>
constexpr BasicStringLiteral< CharT, N+N2 > operator+ (const BasicStringLiteral< CharT, N2 > &o) const
 
constexpr BasicStringLiteraloperator= (BasicStringLiteral &&o) noexcept=default
 
constexpr BasicStringLiteraloperator= (const BasicStringLiteral &o) noexcept=default
 
constexpr bool operator== (const BasicStringLiteral &o) const noexcept
 
template<std::size_t N2>
constexpr bool operator== (const BasicStringLiteral< CharT, N2 >) const noexcept
 
constexpr CharT operator[] (std::size_t n) const noexcept
 
constexpr const_reverse_iterator rbegin () const noexcept
 
constexpr const_reverse_iterator rend () const noexcept
 
constexpr size_type size () const noexcept
 string literal size w/o EOS.
 
constexpr std::basic_string_view< CharT > view () const noexcept
 

Detailed Description

template<typename CharT, std::size_t N>
class jau::BasicStringLiteral< CharT, N >

Static compile-time string literal storage.

Properties

  • includes buffered EOS
  • Implementation has been aligned to p3094r5, but maintains original properties (see above).
Template Parameters
Nstring length excluding EOS

Definition at line 55 of file string_literal.hpp.

Member Typedef Documentation

◆ value_type

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::value_type = CharT

Definition at line 58 of file string_literal.hpp.

◆ size_type

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::size_type = std::size_t

Definition at line 59 of file string_literal.hpp.

◆ difference_type

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::difference_type = ptrdiff_t

Definition at line 60 of file string_literal.hpp.

◆ pointer

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::pointer = CharT*

Definition at line 61 of file string_literal.hpp.

◆ const_pointer

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::const_pointer = const CharT*

Definition at line 62 of file string_literal.hpp.

◆ reference

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::reference = CharT&

Definition at line 63 of file string_literal.hpp.

◆ const_reference

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::const_reference = const CharT&

Definition at line 64 of file string_literal.hpp.

◆ const_iterator

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::const_iterator = const CharT*

Definition at line 65 of file string_literal.hpp.

◆ iterator

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::iterator = const_iterator

Definition at line 66 of file string_literal.hpp.

◆ const_reverse_iterator

template<typename CharT, std::size_t N>
using jau::BasicStringLiteral< CharT, N >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Definition at line 67 of file string_literal.hpp.

Constructor & Destructor Documentation

◆ BasicStringLiteral() [1/5]

template<typename CharT, std::size_t N>
template<std::convertible_to< CharT >... Chars>
requires (sizeof...(Chars) == N) && (... && !std::is_pointer_v<Chars>)
jau::BasicStringLiteral< CharT, N >::BasicStringLiteral ( Chars... chars)
inlineexplicitconstexprnoexcept

Definition at line 75 of file string_literal.hpp.

Here is the caller graph for this function:

◆ BasicStringLiteral() [2/5]

template<typename CharT, std::size_t N>
jau::BasicStringLiteral< CharT, N >::BasicStringLiteral ( const CharT(&) str[N+1])
inlineconstexprnoexcept

Implicit constructor from string literal const CharT (&str)[N+1], i.e. including EOS.

Definition at line 80 of file string_literal.hpp.

◆ BasicStringLiteral() [3/5]

template<typename CharT, std::size_t N>
template<std::size_t S, std::size_t T>
requires (N == S + T)
jau::BasicStringLiteral< CharT, N >::BasicStringLiteral ( const BasicStringLiteral< CharT, S > & s1,
const BasicStringLiteral< CharT, T > & s2 )
inlineexplicitconstexprnoexcept

Definition at line 85 of file string_literal.hpp.

◆ BasicStringLiteral() [4/5]

template<typename CharT, std::size_t N>
jau::BasicStringLiteral< CharT, N >::BasicStringLiteral ( const BasicStringLiteral< CharT, N > & o)
constexprdefaultnoexcept

◆ BasicStringLiteral() [5/5]

template<typename CharT, std::size_t N>
jau::BasicStringLiteral< CharT, N >::BasicStringLiteral ( BasicStringLiteral< CharT, N > && o)
constexprdefaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

template<typename CharT, std::size_t N>
BasicStringLiteral & jau::BasicStringLiteral< CharT, N >::operator= ( const BasicStringLiteral< CharT, N > & o)
constexprdefaultnoexcept

◆ operator=() [2/2]

template<typename CharT, std::size_t N>
BasicStringLiteral & jau::BasicStringLiteral< CharT, N >::operator= ( BasicStringLiteral< CharT, N > && o)
constexprdefaultnoexcept

◆ begin()

template<typename CharT, std::size_t N>
const_iterator jau::BasicStringLiteral< CharT, N >::begin ( ) const
inlineconstexprnoexcept

Definition at line 99 of file string_literal.hpp.

Here is the caller graph for this function:

◆ end()

template<typename CharT, std::size_t N>
const_iterator jau::BasicStringLiteral< CharT, N >::end ( ) const
inlineconstexprnoexcept

Definition at line 100 of file string_literal.hpp.

Here is the caller graph for this function:

◆ cbegin()

template<typename CharT, std::size_t N>
const_iterator jau::BasicStringLiteral< CharT, N >::cbegin ( ) const
inlineconstexprnoexcept

Definition at line 101 of file string_literal.hpp.

Here is the caller graph for this function:

◆ cend()

template<typename CharT, std::size_t N>
const_iterator jau::BasicStringLiteral< CharT, N >::cend ( ) const
inlineconstexprnoexcept

Definition at line 102 of file string_literal.hpp.

Here is the caller graph for this function:

◆ rbegin()

template<typename CharT, std::size_t N>
const_reverse_iterator jau::BasicStringLiteral< CharT, N >::rbegin ( ) const
inlineconstexprnoexcept

Definition at line 103 of file string_literal.hpp.

Here is the caller graph for this function:

◆ rend()

template<typename CharT, std::size_t N>
const_reverse_iterator jau::BasicStringLiteral< CharT, N >::rend ( ) const
inlineconstexprnoexcept

Definition at line 104 of file string_literal.hpp.

Here is the caller graph for this function:

◆ crbegin()

template<typename CharT, std::size_t N>
const_reverse_iterator jau::BasicStringLiteral< CharT, N >::crbegin ( ) const
inlineconstexprnoexcept

Definition at line 105 of file string_literal.hpp.

◆ crend()

template<typename CharT, std::size_t N>
const_reverse_iterator jau::BasicStringLiteral< CharT, N >::crend ( ) const
inlineconstexprnoexcept

Definition at line 106 of file string_literal.hpp.

◆ operator==() [1/2]

template<typename CharT, std::size_t N>
bool jau::BasicStringLiteral< CharT, N >::operator== ( const BasicStringLiteral< CharT, N > & o) const
inlineconstexprnoexcept

Definition at line 108 of file string_literal.hpp.

◆ operator==() [2/2]

template<typename CharT, std::size_t N>
template<std::size_t N2>
bool jau::BasicStringLiteral< CharT, N >::operator== ( const BasicStringLiteral< CharT, N2 > ) const
inlineconstexprnoexcept

Definition at line 112 of file string_literal.hpp.

◆ operator[]()

template<typename CharT, std::size_t N>
CharT jau::BasicStringLiteral< CharT, N >::operator[] ( std::size_t n) const
inlineconstexprnoexcept

Definition at line 115 of file string_literal.hpp.

◆ operator+()

template<typename CharT, std::size_t N>
template<std::size_t N2>
BasicStringLiteral< CharT, N+N2 > jau::BasicStringLiteral< CharT, N >::operator+ ( const BasicStringLiteral< CharT, N2 > & o) const
inlineconstexpr

Definition at line 120 of file string_literal.hpp.

◆ size()

template<typename CharT, std::size_t N>
size_type jau::BasicStringLiteral< CharT, N >::size ( ) const
inlineconstexprnoexcept

string literal size w/o EOS.

Definition at line 129 of file string_literal.hpp.

◆ length()

template<typename CharT, std::size_t N>
size_type jau::BasicStringLiteral< CharT, N >::length ( ) const
inlineconstexprnoexcept

string literal size w/o EOS.

Definition at line 131 of file string_literal.hpp.

◆ max_size()

template<typename CharT, std::size_t N>
size_type jau::BasicStringLiteral< CharT, N >::max_size ( ) const
inlineconstexprnoexcept

string literal size w/o EOS.

Definition at line 133 of file string_literal.hpp.

◆ empty()

template<typename CharT, std::size_t N>
bool jau::BasicStringLiteral< CharT, N >::empty ( ) const
inlineconstexprnoexcept

Definition at line 134 of file string_literal.hpp.

◆ c_str()

template<typename CharT, std::size_t N>
const char * jau::BasicStringLiteral< CharT, N >::c_str ( ) const
inlineconstexprnoexcept

Returns c-string w/ EOS.

Definition at line 136 of file string_literal.hpp.

◆ data()

template<typename CharT, std::size_t N>
const_pointer jau::BasicStringLiteral< CharT, N >::data ( ) const
inlineconstexprnoexcept

Returns c-string w/ EOS.

Definition at line 138 of file string_literal.hpp.

Here is the caller graph for this function:

◆ view()

template<typename CharT, std::size_t N>
std::basic_string_view< CharT > jau::BasicStringLiteral< CharT, N >::view ( ) const
inlineconstexprnoexcept

Definition at line 139 of file string_literal.hpp.

Here is the caller graph for this function:

◆ operator std::basic_string_view< CharT >()

template<typename CharT, std::size_t N>
jau::BasicStringLiteral< CharT, N >::operator std::basic_string_view< CharT > ( ) const
inlineconstexprnoexcept

Definition at line 142 of file string_literal.hpp.


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