Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Helpers for type detection, type rewriting and metaprogramming.
This header is a collection of frequently used templates for working with types. It incurs only modest header inclusion overhead
begin()
and end()
)Definition in file trait.hpp.
Classes | |
class | basic_filebuf< C, T > |
class | can_IterForEach< T > |
Trait template to detect a type usable immediately as "Lumiera Forward Iterator" in a specialised for-each loop This is just a heuristic, based on some common properties of such iterators; it is enough to distinguish it from an STL container, but can certainly be refined. More... | |
struct | can_lexical2string< X > |
types able to be lexically converted to string representation More... | |
struct | can_StandIn< S, G > |
verify the first (special) type can stand-in for the second More... | |
class | can_STL_backIteration< T > |
Trait template to detect a type also supporting STL-style backwards iteration. More... | |
class | can_STL_ForEach< T > |
Trait template to detect a type usable with the STL for-each loop. More... | |
class | char_traits< C > |
struct | can_STL_backIteration< T >::is_backIterable |
struct | is_basically< S, I > |
compare for unadorned base type, disregarding const and references More... | |
struct | is_basicallySame< T, U > |
compare unadorned types, disregarding const and references More... | |
struct | can_STL_backIteration< T >::is_const_backIterable |
struct | can_STL_ForEach< T >::is_const_iterable |
struct | can_STL_backIteration< T >::is_const_noexcept_backIterable |
struct | can_STL_ForEach< T >::is_const_noexcept_iterable |
struct | can_STL_ForEach< T >::is_iterable |
struct | is_narrowingInit< SRC, TAR > |
temporary workaround for GCC [Bug-63723], necessary until CGG-5 More... | |
struct | is_narrowingInit< lib::hash::LuidH, TAR > |
struct | can_STL_backIteration< T >::is_noexcept_backIterable |
struct | can_STL_ForEach< T >::is_noexcept_iterable |
struct | is_nonFloat< NUM > |
struct | is_smart_ptr< X > |
detect smart pointers More... | |
struct | is_smart_ptr< std::shared_ptr< T > > |
struct | is_smart_ptr< std::unique_ptr< T, D > > |
class | is_StateCore< T > |
Trait template to detect a type exposing a »state core« API. More... | |
struct | is_StreamSource< X > |
struct | is_StringLike< X > |
detect various flavours of string / text data More... | |
struct | is_Subclass< S, I > |
verify compliance to an interface by subtype check More... | |
class | P< TAR, BASE > |
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relationships and ordering operators to the pointee objects. More... | |
class | Placement< MO, B > |
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location where the MObject is supposed to be within the Session/Model. More... | |
class | reference_wrapper< X > |
class | reference_wrapper< X > |
struct | RefTraits< TY > |
Type definition helper for pointer and reference types. More... | |
struct | RefTraits< TY & > |
struct | RefTraits< TY && > |
struct | RefTraits< TY * > |
class | shared_ptr< X > |
struct | Strip< X > |
Helper for type analysis: tries to strip all kinds of type adornments. More... | |
class | unique_ptr< T > |
STL class. | |
struct | Unwrap< X > |
Helper for type analysis and convenience accessors: attempts to extract a base type from various wrappers. More... | |
struct | Unwrap< boost::reference_wrapper< X > > |
struct | Unwrap< P< X, B > > |
struct | Unwrap< std::reference_wrapper< X > > |
struct | Unwrap< std::shared_ptr< X > > |
struct | Unwrap< std::unique_ptr< X, D > > |
struct | Unwrap< void > |
< More... | |
struct | Unwrap< X * > |
struct | use_LexicalConversion< X > |
struct | use_StringConversion4Stream< X > |
when to use custom string conversions for output streams More... | |
Macros | |
#define | TRAIT_IS_NARROWING(_SRC_, _TAR_) |
Functions | |
template<typename X > | |
Unwrap< X >::Type & | unwrap (X const &wrapped) |
convenience shortcut: unwrapping free function. More... | |
Namespaces | |
lib | |
Implementation namespace for support and library code. | |
lib::hash | |
Hash implementations usable for the HashIndexed mixin as well as key within std::unordered_map. | |
steam | |
Steam-Layer implementation namespace root. | |
steam::mobject | |
Media-Objects, edit operations and high-level session. | |
#define TRAIT_IS_NARROWING | ( | _SRC_, | |
_TAR_ | |||
) |
Unwrap<X>::Type& lib::meta::unwrap | ( | X const & | wrapped | ) |
convenience shortcut: unwrapping free function.
Definition at line 240 of file trait.hpp.
References lib::meta::unwrap().
Referenced by lib::meta::unwrap().