Open Search
    classhelpers.h File Reference

    Detailed Description

    Class helper macros and templates

    Classes

    class  NonEmptyDerived< B1, B2 >
     
    class  NonEmptyDerived< B1, EmptyClass >
     
    class  NonEmptyDerived< EmptyClass, B2 >
     
    class  NonEmptyDerived< EmptyClass, EmptyClass >
     
    struct  NonEmptyBasesHelper< T1, REST... >
     
    struct  NonEmptyBasesHelper<>
     
    struct  TemplateInstantiation< TEMPLATE, ARGS >
     
    struct  SubstituteType< T, MAP, typename >
     
    struct  SubstituteType< T &, MAP, void >
     
    struct  SubstituteType< T *, MAP, void >
     
    struct  SubstituteType< const T, MAP, void >
     
    struct  SubstituteType< T, MAP, typename SFINAEHelper< void, typename T::Instantiation >::type >
     

    Namespaces

     maxon
     
     maxon::details
     

    Macros

    #define MAXON_SWITCH_FALLTHROUGH
     
    #define MAXON_DISALLOW_COPY_AND_ASSIGN(TypeName)
     
    #define MAXON_OPERATOR_MOVE_ASSIGNMENT(TypeName)
     
    #define MAXON_OPERATOR_COPY_ASSIGNMENT(TypeName)
     
    #define MAXON_OPERATOR_INEQUALITY(TypeName)
     
    #define MAXON_OPERATOR_COMPARISON(TypeName)
     
    #define PRIVATE_MAXON_MOVE_MEMBERS(x, i, a)
     
    #define MAXON_MOVE_MEMBERS(...)
     
    #define PRIVATE_MAXON_COPY_MEMBERS(x, i, a)
     
    #define MAXON_COPY_MEMBERS(...)
     
    #define PRIVATE_MAXON_COPYFROM_MEMBERS(x, i, a)
     
    #define MAXON_COPYFROM_MEMBERS(...)
     
    #define MAXON_OPERATOR_COPYFROM(T, ...)
     
    #define MAXON_HASHCODE(...)
     
    #define PRIVATE_MAXON_EQUALITY_OPERATORS(x, i, a)
     
    #define MAXON_OPERATOR_EQUALITY(T, ...)
     
    #define PRIVATE_MAXON_SIZEOF(X, I, A)
     
    #define PRIVATE_MAXON_IS_TRIVIALLY_HASHABLE(X, I, A)
     
    #define MAXON_OPERATOR_HASH(T, ...)
     
    #define MAXON_OPERATOR_EQUALITY_HASHCODE(T, ...)
     
    #define PRIVATE_MAXON_STRUCT_MEMBER_TOSTRING(x, i, a)
     
    #define PRIVATE_MAXON_STRUCT_MEMBER_TYPE(x, i, a)
     
    #define PRIVATE_MAXON_STRUCT_MEMBER_COPY(x, i, a)
     
    #define MAXON_OPERATOR_STRUCT(T, ...)
     
    #define MAXON_STRUCT_TUPLE(T, ...)
     
    #define MAXON_NONCONST_COUNTERPART(...)
     
    #define PRIVATE_MAXON_MEMBER_ACCESSORS_PARAMS(x, i, a)
     
    #define PRIVATE_MAXON_MEMBER_ACCESSORS_ARGS(x, i, a)
     
    #define MAXON_MEMBER_ACCESSORS(T, M, ...)
     
    #define MAXON_DECLARE_CONDITIONAL_COPY_CONSTRUCTOR(cls, cond)
     
    #define MAXON_DECLARE_CONDITIONAL_MOVE_CONSTRUCTOR(cls, cond)
     
    #define MAXON_DECLARE_CONDITIONAL_COPY_ASSIGNMENT(cls, cond)
     
    #define MAXON_DECLARE_CONDITIONAL_MOVE_ASSIGNMENT(cls, cond)
     

    Typedefs

    template<typename... BASES>
    using NonEmptyBases = typename maxon::details::NonEmptyBasesHelper< typename std::conditional< STD_IS_REPLACEMENT(empty, BASES), EmptyClass, BASES >::type... >::type