Anklang 0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
Ase::CString Class Referencefinal

Compact, deduplicating string variant for constant strings. More...

#include "memory.hh"

Public Types

using size_type = std::string::size_type
 
using const_iterator = std::string::const_iterator
 
using const_reference = std::string::const_reference
 
using const_reverse_iterator = std::string::const_reverse_iterator
 

Public Member Functions

 CString (const char *c)
 
 CString (const char *c, size_type s)
 
 CString (const std::string &s)
 
constexpr CString (const CString &c) noexcept
 
constexpr CString (CString &&c) noexcept
 
constexpr CStringoperator= (const CString &c) noexcept
 
constexpr CStringoperator= (CString &&c) noexcept
 
CStringoperator= (const std::string &s) noexcept
 
CStringoperator= (const char *c) noexcept
 
CStringoperator= (char ch) noexcept
 
CStringoperator= (std::initializer_list< char > l)
 
constexpr CStringassign (const CString &c) noexcept
 
CStringassign (const std::string &s) noexcept
 
CStringassign (const char *c, size_type s)
 
CStringassign (const char *c) noexcept
 
CStringassign (size_type count, char ch) noexcept
 
const std::stringstring () const
 Convert CString into a std::string.
 
const charc_str () const noexcept
 
const chardata () const noexcept
 
const_reference at (size_type pos) const
 
const_reference operator[] (size_type pos) const
 
size_type capacity () const noexcept
 
size_type length () const noexcept
 
bool empty () const noexcept
 
size_type size () const noexcept
 
const_iterator begin () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator end () const noexcept
 
const_iterator cend () const noexcept
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crend () const noexcept
 
 operator std::string () const noexcept
 

Static Public Member Functions

static CString lookup (const std::string &s)
 
static uint temp_quark_impl (CString c)
 
static CString temp_quark_impl (uint maybequark)
 

Static Public Attributes

static constexpr const std::string::size_type npos
 

Friends

bool operator== (CString a, CString b)
 
bool operator== (CString a, const std::string &b)
 
bool operator== (const std::string &a, CString b)
 
bool operator== (CString a, const char *b)
 
bool operator== (const char *a, CString b)
 
std::strong_ordering operator<=> (CString a, CString b)
 
std::strong_ordering operator<=> (CString a, const String &b)
 
std::strong_ordering operator<=> (const String &a, CString b)
 
std::strong_ordering operator<=> (CString a, const char *b)
 
std::strong_ordering operator<=> (const char *a, CString b)
 
std::string operator+ (const std::string &s, CString c)
 
std::string operator+ (CString c, const std::string &s)
 
std::ostreamoperator<< (std::ostream &os, CString c)
 

Detailed Description

Compact, deduplicating string variant for constant strings.

Definition at line 138 of file memory.hh.

Member Typedef Documentation

◆ const_iterator

using Ase::CString::const_iterator = std::string::const_iterator

Definition at line 143 of file memory.hh.

◆ const_reference

using Ase::CString::const_reference = std::string::const_reference

Definition at line 144 of file memory.hh.

◆ const_reverse_iterator

using Ase::CString::const_reverse_iterator = std::string::const_reverse_iterator

Definition at line 145 of file memory.hh.

◆ size_type

using Ase::CString::size_type = std::string::size_type

Definition at line 142 of file memory.hh.

Constructor & Destructor Documentation

◆ ~CString()

Ase::CString::~CString ( )
noexcept

Definition at line 146 of file memory.hh.

◆ CString() [1/5]

Ase::CString::CString ( const char c)

Definition at line 147 of file memory.hh.

◆ CString() [2/5]

Ase::CString::CString ( const char c,
size_type  s 
)

Definition at line 148 of file memory.hh.

◆ CString() [3/5]

Ase::CString::CString ( const std::string s)

Definition at line 149 of file memory.hh.

◆ CString() [4/5]

constexpr Ase::CString::CString ( const CString c)
constexprnoexcept

Definition at line 151 of file memory.hh.

◆ CString() [5/5]

constexpr Ase::CString::CString ( CString &&  c)
constexprnoexcept

Definition at line 152 of file memory.hh.

Member Function Documentation

◆ assign() [1/5]

CString & Ase::CString::assign ( const char c)
noexcept

Definition at line 162 of file memory.hh.

◆ assign() [2/5]

CString & Ase::CString::assign ( const char c,
size_type  s 
)

Definition at line 161 of file memory.hh.

◆ assign() [3/5]

constexpr CString & Ase::CString::assign ( const CString c)
constexprnoexcept

Definition at line 159 of file memory.hh.

◆ assign() [4/5]

CString & Ase::CString::assign ( const std::string s)
noexcept

Assign a std::string to a CString, after deduplication, its memory is never released. In contrast to lookup(), the resulting CString is guaranteed to resolve to the contents of std::string s, memory is allocated if needed. Note that CString::assign() is not particularly fast, use it only to save memory for strings that are known to persist throughout runtime.

Definition at line 621 of file memory.cc.

◆ assign() [5/5]

CString & Ase::CString::assign ( size_type  count,
char  ch 
)
noexcept

Definition at line 163 of file memory.hh.

◆ at()

const_reference Ase::CString::at ( size_type  pos) const

Definition at line 167 of file memory.hh.

◆ begin()

const_iterator Ase::CString::begin ( ) const
noexcept

Definition at line 173 of file memory.hh.

◆ c_str()

const char * Ase::CString::c_str ( ) const
noexcept

Definition at line 165 of file memory.hh.

◆ capacity()

size_type Ase::CString::capacity ( ) const
noexcept

Definition at line 169 of file memory.hh.

◆ cbegin()

const_iterator Ase::CString::cbegin ( ) const
noexcept

Definition at line 174 of file memory.hh.

◆ cend()

const_iterator Ase::CString::cend ( ) const
noexcept

Definition at line 176 of file memory.hh.

◆ crbegin()

const_reverse_iterator Ase::CString::crbegin ( ) const
noexcept

Definition at line 178 of file memory.hh.

◆ crend()

const_reverse_iterator Ase::CString::crend ( ) const
noexcept

Definition at line 180 of file memory.hh.

◆ data()

const char * Ase::CString::data ( ) const
noexcept

Definition at line 166 of file memory.hh.

◆ empty()

bool Ase::CString::empty ( ) const
noexcept

Definition at line 171 of file memory.hh.

◆ end()

const_iterator Ase::CString::end ( ) const
noexcept

Definition at line 175 of file memory.hh.

◆ length()

size_type Ase::CString::length ( ) const
noexcept

Definition at line 170 of file memory.hh.

◆ lookup()

CString Ase::CString::lookup ( const std::string s)
static

Lookup a previously existing CString for a std::string s. If s has never been assigned to a CString before, the returned CString is empty. In constrast to assign(), no new memory is allocated.

Definition at line 631 of file memory.cc.

Referenced by Ase::AudioProcessor::find_ibus(), Ase::AudioProcessor::find_obus(), and Ase::AudioProcessor::find_param().

◆ operator std::string()

Ase::CString::operator std::string ( ) const
noexcept

Definition at line 181 of file memory.hh.

◆ operator=() [1/6]

CString & Ase::CString::operator= ( char  ch)
noexcept

Definition at line 157 of file memory.hh.

◆ operator=() [2/6]

CString & Ase::CString::operator= ( const char c)
noexcept

Definition at line 156 of file memory.hh.

◆ operator=() [3/6]

constexpr CString & Ase::CString::operator= ( const CString c)
constexprnoexcept

Definition at line 153 of file memory.hh.

◆ operator=() [4/6]

CString & Ase::CString::operator= ( const std::string s)
noexcept

Definition at line 155 of file memory.hh.

◆ operator=() [5/6]

constexpr CString & Ase::CString::operator= ( CString &&  c)
constexprnoexcept

Definition at line 154 of file memory.hh.

◆ operator=() [6/6]

CString & Ase::CString::operator= ( std::initializer_list< char l)

Definition at line 158 of file memory.hh.

◆ operator[]()

const_reference Ase::CString::operator[] ( size_type  pos) const

Definition at line 168 of file memory.hh.

◆ rbegin()

const_reverse_iterator Ase::CString::rbegin ( ) const
noexcept

Definition at line 177 of file memory.hh.

◆ rend()

const_reverse_iterator Ase::CString::rend ( ) const
noexcept

Definition at line 179 of file memory.hh.

◆ size()

size_type Ase::CString::size ( ) const
noexcept

Definition at line 172 of file memory.hh.

◆ string()

const std::string & Ase::CString::string ( ) const

Convert CString into a std::string.

Definition at line 640 of file memory.cc.

◆ temp_quark_impl() [1/2]

uint Ase::CString::temp_quark_impl ( CString  c)
static

Definition at line 646 of file memory.cc.

◆ temp_quark_impl() [2/2]

CString Ase::CString::temp_quark_impl ( uint  maybequark)
static

Definition at line 652 of file memory.cc.

Friends And Related Symbol Documentation

◆ operator+ [1/2]

std::string operator+ ( const std::string s,
CString  c 
)
friend

Definition at line 192 of file memory.hh.

◆ operator+ [2/2]

std::string operator+ ( CString  c,
const std::string s 
)
friend

Definition at line 193 of file memory.hh.

◆ operator<<

std::ostream & operator<< ( std::ostream os,
CString  c 
)
friend

Definition at line 197 of file memory.hh.

◆ operator<=> [1/5]

std::strong_ordering operator<=> ( const char a,
CString  b 
)
friend

Definition at line 191 of file memory.hh.

◆ operator<=> [2/5]

std::strong_ordering operator<=> ( const String a,
CString  b 
)
friend

Definition at line 189 of file memory.hh.

◆ operator<=> [3/5]

std::strong_ordering operator<=> ( CString  a,
const char b 
)
friend

Definition at line 190 of file memory.hh.

◆ operator<=> [4/5]

std::strong_ordering operator<=> ( CString  a,
const String b 
)
friend

Definition at line 188 of file memory.hh.

◆ operator<=> [5/5]

std::strong_ordering operator<=> ( CString  a,
CString  b 
)
friend

Definition at line 187 of file memory.hh.

◆ operator== [1/5]

bool operator== ( const char a,
CString  b 
)
friend

Definition at line 186 of file memory.hh.

◆ operator== [2/5]

bool operator== ( const std::string a,
CString  b 
)
friend

Definition at line 184 of file memory.hh.

◆ operator== [3/5]

bool operator== ( CString  a,
const char b 
)
friend

Definition at line 185 of file memory.hh.

◆ operator== [4/5]

bool operator== ( CString  a,
const std::string b 
)
friend

Definition at line 183 of file memory.hh.

◆ operator== [5/5]

bool operator== ( CString  a,
CString  b 
)
friend

Definition at line 182 of file memory.hh.

Member Data Documentation

◆ npos

constexpr const std::string::size_type Ase::CString::npos
staticconstexpr

Definition at line 198 of file memory.hh.


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