ALib C++ Library
Library Version: 2402 R1
Documentation generated by doxygen
Loading...
Searching...
No Matches
alib::characters Namespace Reference

Description:

This is the reference documentation of sub-namespace characters of the ALib C++ Library , which holds types of library module ALib Characters .

Extensive documentation for this module is provided with ALib Module Characters - Programmer's Manual.

Nested Namespaces:

namespace  compatibility
 

Type Index:

struct  CharArray
 
struct  T_CharArray
 
struct  T_ZTCharArray
 
struct  TT_CharArrayType
 
struct  TT_CharOfSize
 
struct  TT_ComplementChar
 
struct  TT_IsChar
 
struct  TT_ZTCharArrayType
 

Type Definition Index:

using character = PLATFORM_SPECIFIC
 
using complementChar = PLATFORM_SPECIFIC
 
using nchar = char
 
using strangeChar = PLATFORM_SPECIFIC
 
using wchar = PLATFORM_SPECIFIC
 
using xchar = PLATFORM_SPECIFIC
 

Enumeration Index:

enum class  AccessType { NONE , Implicit , ExplicitOnly , MutableOnly }
 
enum class  ConstructionType { NONE , Implicit , ExplicitOnly }
 

Type Definition Details:

◆ character

using character = PLATFORM_SPECIFIC

This type represents a standard ALib character. The width (size) of a character is dependent on the platform and compilation flags.

This is why this type is called a "logical" type. The two other logical character types are complementChar and strangeChar.

See also
For details, see chapter 2. Character Types of the Programmer's Manual of module ALib Characters .

Definition at line 146 of file characters.hpp.

◆ complementChar

using complementChar = PLATFORM_SPECIFIC

This type represents a non-standard ALib character. If alib::character is defined to implement a narrow character type, then this type implements a wide character and vice versa. Note, that the width of a wide character is not defined as well. It might be 2 or 4 bytes wide.

This type is called a "logical" type. The two other logical character types are character and strangeChar.

See also
For details, see chapter 2. Character Types of the Programmer's Manual of module ALib Characters .

Definition at line 162 of file characters.hpp.

◆ nchar

using nchar = char

This type represents a narrow character in ALib . This is an alias for built-in C++ type char.

See also
For details, see chapter 2. Character Types of the Programmer's Manual of module ALib Characters .

Definition at line 42 of file characters.hpp.

◆ strangeChar

using strangeChar = PLATFORM_SPECIFIC

Besides types alib::character and alib::complementChar, this is the third logical character type defined by ALib .
Independent from compiler defaults and optional compiler symbols provided, this type always is equivalent to type xchar

See also
For details, see chapter 2. Character Types of the Programmer's Manual of module ALib Characters .

Definition at line 174 of file characters.hpp.

◆ wchar

using wchar = PLATFORM_SPECIFIC

This type represents a wide character in ALib . Usually this is an alias for built-in C++ type wchar_t. As the width of the latter is compiler-specific (the width may vary with different compilers even on the same platform), compiler symobls ALIB_CHARACTERS_SIZEOF_WCHAR may be used to manipulate its width.

See also
For details, see chapter 2. Character Types of the Programmer's Manual of module ALib Characters .

Definition at line 66 of file characters.hpp.

◆ xchar

using xchar = PLATFORM_SPECIFIC

This type represents a second wide character type which has a width complementary to that of type wchar : If wchar is 2 bytes wide, then this type aliases char32_t and if its width is 4 bytes, this type aliases char16_t.

While together with types alib::nchar and alib::wchar it forms the group of "explicit character types", it is always identical to logical type alib::strangeChar.

See also
For details, see chapter 2. Character Types of the Programmer's Manual of module ALib Characters .

Definition at line 81 of file characters.hpp.

Enumeration Details:

◆ AccessType

enum class AccessType
strong

Enumeration of possible values for field Access used with traits types T_CharArray and T_ZTCharArray . The elements of this enumeration indicate if and how the data of an (non-zero terminated, respectively zero terminated) array-like type may be accessed.

Enumerator
NONE 

Data may not be received. This value usually indicates that a custom type does not implement a character array at all. Hence, this is the default value of the non-specialized versions of T_CharArray and T_ZTCharArray .

Implicit 

Allows implicit (and explicit) access of the character array data from mutable or constant objects.

ExplicitOnly 

Allows explicit access of the character array data from mutable or constant objects.

MutableOnly 

Allows explicit access of the character array data from mutable objects.

Definition at line 203 of file characters.hpp.

◆ ConstructionType

enum class ConstructionType
strong

Enumeration of possible values for field Construction used with traits types T_CharArray and T_ZTCharArray . The elements of this enumeration indicate if and how values an array-like type may be constructed from a (non-zero terminated, respectively zero terminated) character array.

Enumerator
NONE 

The custom type may not be constructed from character arrays. This is the default value of the non-specialized versions of T_CharArray and T_ZTCharArray but may very well be used with specializations as well.

Implicit 

Allows implicit (and explicit) construction of objects from character array data.

ExplicitOnly 

Allows explicit construction of objects from character array data.

Definition at line 230 of file characters.hpp.