1#ifndef NGEN_UTILITIES_TRAITS_HPP 
    2#define NGEN_UTILITIES_TRAITS_HPP 
    5#include <boost/variant.hpp> 
   31template<
typename T, 
typename... Ts>
 
   40template<
typename To, 
typename... From>
 
   49template<
typename From, 
typename... To>
 
   58template<
typename T, 
typename... Ts>
 
   61template<
typename... Ts>
 
   83    template<
template<
typename> 
class Container>
 
  102    template<
typename S, 
typename Tp>
 
 
 
disjunction< std::is_convertible< From, To >::value... > is_convertible_to_any
Checks that {From} is convertible to any types in {To}.
Definition traits.hpp:50
 
std::integral_constant< bool, B > bool_constant
Definition traits.hpp:15
 
bool_constant<!conjunction<!Bs... >::value > disjunction
Definition traits.hpp:23
 
disjunction< std::is_same< T, Ts >::value... > is_same_to_any
Checks that {T} is the same as at least one of {Ts}.
Definition traits.hpp:59
 
conjunction< std::is_same< Ts, T >::value... > all_is_same
Check that all types {Ts} are the same as {T}.
Definition traits.hpp:32
 
conjunction< std::is_convertible< From, To >::value... > all_is_convertible
Checks that all types {From} are convertible to {T}.
Definition traits.hpp:41
 
std::is_same< bool_pack< true, Bs... >, bool_pack< Bs..., true > > conjunction
Definition traits.hpp:19
 
Definition DomainLayer.hpp:9
 
boost::variant< Ts... > variant_scalar
Provides a type alias for a boost::variant containing the types of this type list.
Definition traits.hpp:71
 
boost::variant< Container< Ts >... > variant_container
Like variant_scalars, but for container types.
Definition traits.hpp:84
 
is_convertible_to_any< S, Ts... > is_supported
Semantically, we define that a type is supported if it's convertible to (not necessarily the same as)...
Definition traits.hpp:94
 
std::enable_if_t< is_supported< S >::value, Tp > enable_if_supports
Used for SFINAE.
Definition traits.hpp:103