MADNESS 0.10.1
Classes | Namespaces | Typedefs | Variables
meta.h File Reference
#include <type_traits>
Include dependency graph for meta.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  madness::meta::conjunction<... >
 
struct  madness::meta::conjunction< B1 >
 
struct  madness::meta::conjunction< B1, Bn... >
 
struct  madness::meta::detail::detector< Default, Enabler, Op, Args >
 
struct  madness::meta::detail::detector< Default, void_t< Op< Args... > >, Op, Args... >
 
struct  madness::meta::disjunction<... >
 
struct  madness::meta::disjunction< B1 >
 
struct  madness::meta::disjunction< B1, Bn... >
 
struct  madness::meta::drop_last_arg_and_apply< MetaFn, Args >
 
struct  madness::meta::drop_last_arg_and_apply_callable< MetaFn, Callable, Args >
 
struct  madness::meta::drop_last_arg_and_apply_callable_impl< MetaFn, Callable, typelist< UpToLast... >, Last >
 
struct  madness::meta::drop_last_arg_and_apply_callable_impl< MetaFn, Callable, typelist< UpToT... >, T, Rest... >
 
struct  madness::meta::drop_last_arg_and_apply_impl< MetaFn, typelist< UpToLast... >, Last >
 
struct  madness::meta::drop_last_arg_and_apply_impl< MetaFn, typelist< UpToT... >, T, Rest... >
 
struct  madness::meta::last_type< Ts >
 
struct  madness::meta::last_type< T0 >
 
struct  madness::meta::last_type< T0, T1, Ts... >
 
struct  madness::meta::make_void< Ts >
 
struct  madness::meta::nonesuch
 
struct  madness::meta::typelist< P >
 

Namespaces

namespace  madness
 Namespace for all elements and tools of MADNESS.
 
namespace  madness::meta
 
namespace  madness::meta::detail
 

Typedefs

template<class Default , template< class... > class Op, class... Args>
using madness::meta::detected_or = detail::detector< Default, void, Op, Args... >
 
template<class Default , template< class... > class Op, class... Args>
using madness::meta::detected_or_t = typename detected_or< Default, Op, Args... >::type
 
template<template< class... > class Op, class... Args>
using madness::meta::detected_t = typename detail::detector< nonesuch, void, Op, Args... >::type
 
template<template< class... > class Op, class... Args>
using madness::meta::is_detected = typename detail::detector< nonesuch, void, Op, Args... >::value_t
 
template<class To , template< class... > class Op, class... Args>
using madness::meta::is_detected_convertible = std::is_convertible< detected_t< Op, Args... >, To >
 
template<class Expected , template< class... > class Op, class... Args>
using madness::meta::is_detected_exact = std::is_same< Expected, detected_t< Op, Args... > >
 
template<typename... Ts>
using madness::meta::void_t = typename make_void< Ts... >::type
 

Variables

template<class... B>
constexpr bool madness::meta::conjunction_v = conjunction<B...>::value
 
template<class... B>
constexpr bool madness::meta::disjunction_v = disjunction<B...>::value
 
template<class To , template< class... > class Op, class... Args>
constexpr bool madness::meta::is_detected_convertible_v = is_detected_convertible<To, Op, Args...>::value
 
template<class Expected , template< class... > class Op, class... Args>
constexpr bool madness::meta::is_detected_exact_v = is_detected_exact<Expected, Op, Args...>::value
 
template<template< class... > class Op, class... Args>
constexpr bool madness::meta::is_detected_v = is_detected<Op, Args...>::value
 
template<class T >
constexpr bool madness::meta::is_function_v = std::is_function<T>::value
 
template<class T >
constexpr bool madness::meta::is_member_function_pointer_v = std::is_member_function_pointer<T>::value