Flecs v4.1
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
Pair type

Compile-time utilities for working with relationship pairs. More...

Collaboration diagram for Pair type:

Classes

struct  flecs::pair< First, Second >
 Type that represents a pair. More...
 
struct  flecs::is_pair< T >
 Test if a type is a pair. More...
 
struct  flecs::actual_type< T, U >
 Get the actual type from a regular type or pair. More...
 
struct  flecs::actual_type< T, if_not_t< is_pair< T >::value > >
 
struct  flecs::actual_type< T, if_t< is_pair< T >::value > >
 
struct  flecs::base_type< T >
 Get the type without const, *, and &. More...
 
struct  flecs::base_arg_type< T >
 Get the type without * and & (retains const, which is useful for function args). More...
 
struct  flecs::is_actual< T >
 Test if a type is the same as its actual type. More...
 

Typedefs

template<typename First , typename Second , if_t< is_empty< First >::value > = 0>
using flecs::pair_object = pair<First, Second>
 Alias for pair when First is empty (tag).
 
template<typename T >
using flecs::raw_type_t = remove_pointer_t<remove_reference_t<T>>
 Get the raw type by removing pointer and reference qualifiers.
 
template<typename P >
using flecs::pair_first_t = transcribe_cv_t<remove_reference_t<P>, typename raw_type_t<P>::first>
 Get pair::first from a pair while preserving cv qualifiers.
 
template<typename P >
using flecs::pair_second_t = transcribe_cv_t<remove_reference_t<P>, typename raw_type_t<P>::second>
 Get pair::second from a pair while preserving cv qualifiers.
 
template<typename P >
using flecs::pair_type_t = transcribe_cvp_t<remove_reference_t<P>, typename raw_type_t<P>::type>
 Get the pair::type type from a pair while preserving cv qualifiers and pointer type.
 
template<typename T >
using flecs::actual_type_t = typename actual_type<T>::type
 
template<typename T >
using flecs::base_type_t = typename base_type<T>::type
 Convenience alias for base_type.
 
template<typename T >
using flecs::base_arg_type_t = typename base_arg_type<T>::type
 Convenience alias for base_arg_type.
 

Variables

template<typename T >
constexpr bool flecs::is_pair_v = is_pair<T>::value
 Convenience variable template to check if a type is a pair.
 
template<typename T >
constexpr bool flecs::is_actual_v = is_actual<T>::value
 Convenience variable template to check if a type is its own actual type.
 

Detailed Description

Compile-time utilities for working with relationship pairs.

Typedef Documentation

◆ actual_type_t

template<typename T >
using flecs::actual_type_t = typename actual_type<T>::type

Definition at line 133 of file pair.hpp.

◆ base_arg_type_t

template<typename T >
using flecs::base_arg_type_t = typename base_arg_type<T>::type

Convenience alias for base_arg_type.

Definition at line 155 of file pair.hpp.

◆ base_type_t

template<typename T >
using flecs::base_type_t = typename base_type<T>::type

Convenience alias for base_type.

Definition at line 144 of file pair.hpp.

◆ pair_first_t

template<typename P >
using flecs::pair_first_t = transcribe_cv_t<remove_reference_t<P>, typename raw_type_t<P>::first>

Get pair::first from a pair while preserving cv qualifiers.

Definition at line 108 of file pair.hpp.

◆ pair_object

template<typename First , typename Second , if_t< is_empty< First >::value > = 0>
using flecs::pair_object = pair<First, Second>

Alias for pair when First is empty (tag).

Definition at line 90 of file pair.hpp.

◆ pair_second_t

template<typename P >
using flecs::pair_second_t = transcribe_cv_t<remove_reference_t<P>, typename raw_type_t<P>::second>

Get pair::second from a pair while preserving cv qualifiers.

Definition at line 112 of file pair.hpp.

◆ pair_type_t

template<typename P >
using flecs::pair_type_t = transcribe_cvp_t<remove_reference_t<P>, typename raw_type_t<P>::type>

Get the pair::type type from a pair while preserving cv qualifiers and pointer type.

Definition at line 116 of file pair.hpp.

◆ raw_type_t

template<typename T >
using flecs::raw_type_t = remove_pointer_t<remove_reference_t<T>>

Get the raw type by removing pointer and reference qualifiers.

Definition at line 94 of file pair.hpp.

Variable Documentation

◆ is_actual_v

template<typename T >
constexpr bool flecs::is_actual_v = is_actual<T>::value
inlineconstexpr

Convenience variable template to check if a type is its own actual type.

Definition at line 166 of file pair.hpp.

◆ is_pair_v

template<typename T >
constexpr bool flecs::is_pair_v = is_pair<T>::value
inlineconstexpr

Convenience variable template to check if a type is a pair.

Definition at line 104 of file pair.hpp.