OGLplus  (0.59.0) a C++ wrapper for rendering APIs

Metaprogramming utilities

Classes

struct  eagine::instead_of< Src, Dst >
 
struct  eagine::mp_plus< T1, T2 >
 Implementation of addition on types representing numbers. More...
 
struct  eagine::mp_minus< T1, T2 >
 Implementation of subtraction on types representing numbers. More...
 
struct  eagine::mp_negate< T1 >
 Implementation of negation on types representing numbers. More...
 
struct  eagine::mp_list< C >
 Compile-time type list template. More...
 
struct  eagine::mp_is_empty< TL >
 Implements the is_empty operation on compile-time type lists. More...
 
struct  eagine::mp_contains< TL, T >
 Implements the contains operation on compile-time type lists. More...
 
struct  eagine::mp_union_add< TL1, TL2, TL3 >
 Implements the union operation on compile-time type lists. More...
 
struct  eagine::selector< V >
 Template used to construct tag-types used mostly in tag-dispatching. More...
 
struct  eagine::type_identity< T >
 Template type used mostly for function type-tag dispatching. More...
 
struct  eagine::get_type< T, F >
 Implementation detail of the type_t template. More...
 

Typedefs

template<typename Src , typename Dst >
using eagine::instead_of_t = typename instead_of< Src, Dst >::type
 
template<typename T1 , typename T2 >
using eagine::mp_plus_t = typename mp_plus< T1, T2 >::type
 Addition operation on types representing numbers. More...
 
template<typename T1 , typename T2 >
using eagine::mp_minus_t = typename mp_minus< T1, T2 >::type
 Subtraction operation on types representing numbers. More...
 
template<typename T1 >
using eagine::mp_negate_t = typename mp_negate< T1 >::type
 Unary negation operation on types representing numbers. More...
 
template<typename TL , typename T >
using eagine::mp_contains_t = typename mp_contains< TL, T >::type
 Trait indicating whether a type list contains a specified type. More...
 
template<typename TL1 , typename TL2 >
using eagine::mp_union = mp_union_add< TL1, TL2, mp_list<> >
 Implements the union operation on compile-time type lists. More...
 
template<typename TL1 , typename TL2 >
using eagine::mp_union_t = typename mp_union< TL1, TL2 >::type
 Trait returning the union of types in two type lists. More...
 
using eagine::default_selector_t = selector< 0U >
 Type alias for the default overload selector type. More...
 
using eagine::construct_from_t = selector< 0xFU >
 Type alias for the construct-from tag-dispatch selector. More...
 
template<typename T , typename F = void>
using eagine::type_t = typename get_type< T, F >::type
 Template returning nested alias type of type T or void.
 

Functions

template<typename T >
static constexpr auto eagine::make_identity (const T &) noexcept -> type_identity< T >
 Makes type_identity for type T of the argument.
 

Variables

template<typename T1 , typename T2 >
constexpr auto eagine::mp_plus_v
 Addition operation on types representing numbers. More...
 
template<typename T1 , typename T2 >
constexpr auto eagine::mp_minus_v
 Subtraction operation on types representing numbers. More...
 
template<typename T1 >
constexpr auto eagine::mp_negate_v
 Unary negation operation on types representing numbers. More...
 
template<typename TL >
constexpr const auto eagine::mp_is_empty_v
 Trait indicating whether a type list is empty. More...
 
template<typename TL , typename T >
constexpr const auto eagine::mp_contains_v
 Trait indicating whether a type list contains a specified type. More...
 
constexpr const default_selector_t eagine::default_selector
 The default overload selector constant. More...
 
constexpr const construct_from_t eagine::construct_from
 The construct-from tag-dispatch constant. More...
 

Detailed Description

Typedef Documentation

◆ construct_from_t

using eagine::construct_from_t = typedef selector<0xFU>

Type alias for the construct-from tag-dispatch selector.

See also
construct_from

This type is typically used as an additional parameter in templated constructors to avoid conflicts with copy/move constructors.

◆ default_selector_t

using eagine::default_selector_t = typedef selector<0U>

Type alias for the default overload selector type.

See also
default_selector

◆ instead_of_t

template<typename Src , typename Dst >
using eagine::instead_of_t = typedef typename instead_of<Src, Dst>::type
See also
Trait "returning" Dst type instead of Src type.

◆ mp_contains_t

template<typename TL , typename T >
using eagine::mp_contains_t = typedef typename mp_contains<TL, T>::type

Trait indicating whether a type list contains a specified type.

See also
mp_list
mp_contains_v

◆ mp_minus_t

template<typename T1 , typename T2 >
using eagine::mp_minus_t = typedef typename mp_minus<T1, T2>::type

Subtraction operation on types representing numbers.

See also
mp_minus_v

◆ mp_negate_t

template<typename T1 >
using eagine::mp_negate_t = typedef typename mp_negate<T1>::type

Unary negation operation on types representing numbers.

See also
mp_negate_v

◆ mp_plus_t

template<typename T1 , typename T2 >
using eagine::mp_plus_t = typedef typename mp_plus<T1, T2>::type

Addition operation on types representing numbers.

See also
mp_plus_v

◆ mp_union

template<typename TL1 , typename TL2 >
using eagine::mp_union = typedef mp_union_add<TL1, TL2, mp_list<> >

Implements the union operation on compile-time type lists.

Note
Do not use directly, use mp_union_t.

◆ mp_union_t

template<typename TL1 , typename TL2 >
using eagine::mp_union_t = typedef typename mp_union<TL1, TL2>::type

Trait returning the union of types in two type lists.

See also
mp_list

Variable Documentation

◆ construct_from

constexpr const construct_from_t eagine::construct_from
constexpr

◆ default_selector

◆ mp_contains_v

template<typename TL , typename T >
constexpr const auto eagine::mp_contains_v
constexpr

Trait indicating whether a type list contains a specified type.

See also
mp_list
mp_contains_t

◆ mp_is_empty_v

template<typename TL >
constexpr const auto eagine::mp_is_empty_v
constexpr

Trait indicating whether a type list is empty.

See also
mp_list

◆ mp_minus_v

template<typename T1 , typename T2 >
constexpr auto eagine::mp_minus_v
constexpr

Subtraction operation on types representing numbers.

See also
mp_minus_t

◆ mp_negate_v

template<typename T1 >
constexpr auto eagine::mp_negate_v
constexpr

Unary negation operation on types representing numbers.

See also
mp_negate_t

◆ mp_plus_v

template<typename T1 , typename T2 >
constexpr auto eagine::mp_plus_v
constexpr

Addition operation on types representing numbers.

See also
mp_plus_t

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).