RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
better_enums Namespace Reference

Classes

struct  _eat_assign
 Get intrinsic value of an (Enum::value) by taking advantage of. More...
 
struct  _initialize_at_program_start
 
struct  _iterable
 
struct  map
 
struct  map_compare
 
struct  map_compare< const char * >
 
struct  map_compare< const wchar_t * >
 
struct  optional
 

Functions

template<typename T >
BETTER_ENUMS_CONSTEXPR__default ()
 
template<>
BETTER_ENUMS_CONSTEXPR_ const char * _default< const char * > ()
 
template<>
BETTER_ENUMS_CONSTEXPR_ std::size_t _default< std::size_t > ()
 
template<typename CastTo , typename Element >
static BETTER_ENUMS_CONSTEXPR_ optional< CastTo > _map_index (const Element *array, optional< std::size_t > index)
 
 BETTER_ENUMS_IF_EXCEPTIONS (template< typename T > BETTER_ENUMS_CONSTEXPR_ static T _or_throw(optional< T > maybe, const char *message) { BETTER_ENUMS_OR_THROW }) template< typename T > BETTER_ENUMS_CONSTEXPR_ static T *_or_null(optional< T * > maybe)
 
template<typename T >
static BETTER_ENUMS_CONSTEXPR__or_zero (optional< T > maybe)
 
template<typename T , typename U >
BETTER_ENUMS_CONSTEXPR_continue_with (T, U value)
 
BETTER_ENUMS_CONSTEXPR_ bool _ends_name (char c, std::size_t index=0)
 
BETTER_ENUMS_CONSTEXPR_ bool _has_initializer (const char *s, std::size_t index=0)
 
BETTER_ENUMS_CONSTEXPR_ std::size_t _constant_length (const char *s, std::size_t index=0)
 
BETTER_ENUMS_CONSTEXPR_ char _select (const char *from, std::size_t from_length, std::size_t index)
 
BETTER_ENUMS_CONSTEXPR_ char _to_lower_ascii (char c)
 
BETTER_ENUMS_CONSTEXPR_ bool _names_match (const char *stringizedName, const char *referenceName, std::size_t index=0)
 
BETTER_ENUMS_CONSTEXPR_ bool _names_match_nocase (const char *stringizedName, const char *referenceName, std::size_t index=0)
 
void _trim_names (const char *const *raw_names, const char **trimmed_names, char *storage, std::size_t count)
 
template<typename Enum , typename T >
BETTER_ENUMS_CONSTEXPR_ map< Enum, T > make_map (T(*f)(Enum))
 

Variables

static BETTER_ENUMS_CONSTEXPR_ const char * _name_enders = "= \t\n"
 

Function Documentation

◆ _constant_length()

BETTER_ENUMS_CONSTEXPR_ std::size_t better_enums::_constant_length ( const char *  s,
std::size_t  index = 0 
)
inline

Definition at line 473 of file enum.h.

References _constant_length(), and _ends_name().

Referenced by _constant_length().

◆ _default()

template<typename T >
BETTER_ENUMS_CONSTEXPR_ T better_enums::_default ( )
inline

Definition at line 315 of file enum.h.

◆ _default< const char * >()

template<>
BETTER_ENUMS_CONSTEXPR_ const char * better_enums::_default< const char * > ( )
inline

Definition at line 321 of file enum.h.

References BETTER_ENUMS_NULLPTR.

◆ _default< std::size_t >()

template<>
BETTER_ENUMS_CONSTEXPR_ std::size_t better_enums::_default< std::size_t > ( )
inline

Definition at line 327 of file enum.h.

◆ _ends_name()

BETTER_ENUMS_CONSTEXPR_ bool better_enums::_ends_name ( char  c,
std::size_t  index = 0 
)
inline

Definition at line 455 of file enum.h.

References _ends_name(), and _name_enders.

Referenced by _constant_length(), _ends_name(), _names_match(), and _names_match_nocase().

◆ _has_initializer()

BETTER_ENUMS_CONSTEXPR_ bool better_enums::_has_initializer ( const char *  s,
std::size_t  index = 0 
)
inline

Definition at line 463 of file enum.h.

References _has_initializer().

Referenced by _has_initializer().

◆ _map_index()

template<typename CastTo , typename Element >
static BETTER_ENUMS_CONSTEXPR_ optional< CastTo > better_enums::_map_index ( const Element *  array,
optional< std::size_t >  index 
)
static

Definition at line 353 of file enum.h.

◆ _names_match()

BETTER_ENUMS_CONSTEXPR_ bool better_enums::_names_match ( const char *  stringizedName,
const char *  referenceName,
std::size_t  index = 0 
)
inline

Definition at line 489 of file enum.h.

References _ends_name(), and _names_match().

Referenced by _names_match().

◆ _names_match_nocase()

BETTER_ENUMS_CONSTEXPR_ bool better_enums::_names_match_nocase ( const char *  stringizedName,
const char *  referenceName,
std::size_t  index = 0 
)
inline

Definition at line 501 of file enum.h.

References _ends_name(), _names_match_nocase(), and _to_lower_ascii().

Referenced by _names_match_nocase().

◆ _or_zero()

template<typename T >
static BETTER_ENUMS_CONSTEXPR_ T better_enums::_or_zero ( optional< T >  maybe)
static

Definition at line 389 of file enum.h.

◆ _select()

BETTER_ENUMS_CONSTEXPR_ char better_enums::_select ( const char *  from,
std::size_t  from_length,
std::size_t  index 
)
inline

Definition at line 479 of file enum.h.

◆ _to_lower_ascii()

BETTER_ENUMS_CONSTEXPR_ char better_enums::_to_lower_ascii ( char  c)
inline

Definition at line 484 of file enum.h.

Referenced by _names_match_nocase().

◆ _trim_names()

void better_enums::_trim_names ( const char *const *  raw_names,
const char **  trimmed_names,
char *  storage,
std::size_t  count 
)
inline

Definition at line 512 of file enum.h.

References _name_enders.

◆ BETTER_ENUMS_IF_EXCEPTIONS()

better_enums::BETTER_ENUMS_IF_EXCEPTIONS ( template< typename T > BETTER_ENUMS_CONSTEXPR_ static T _or_throw(optional< T > maybe, const char *message) { BETTER_ENUMS_OR_THROW )

Definition at line 373 of file enum.h.

References BETTER_ENUMS_OR_THROW.

◆ continue_with()

template<typename T , typename U >
BETTER_ENUMS_CONSTEXPR_ U better_enums::continue_with ( ,
value 
)

Definition at line 403 of file enum.h.

◆ make_map()

template<typename Enum , typename T >
BETTER_ENUMS_CONSTEXPR_ map< Enum, T > better_enums::make_map ( T(*)(Enum)  f)

Definition at line 1308 of file enum.h.

Variable Documentation

◆ _name_enders

BETTER_ENUMS_CONSTEXPR_ const char* better_enums::_name_enders = "= \t\n"
static

Definition at line 453 of file enum.h.

Referenced by _ends_name(), and _trim_names().