meta.h File Reference
#include <functional>
#include <type_traits>
#include "ttg/util/span.h"
#include "ttg/util/typelist.h"
#include "ttg/buffer.h"
#include "ttg/ptr.h"
#include "ttg/devicescratch.h"

Classes

struct  ttg::meta::nonref_tuple< std::tuple< Ts... > >
 
struct  ttg::meta::tuple_concat< std::tuple< Ts... > >
 
struct  ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >
 
struct  ttg::meta::detail::keep_or_drop< bool >
 
struct  ttg::meta::detail::keep_or_drop< false >
 
struct  ttg::meta::filtered_tuple< std::tuple< Es... >, Pred >
 
struct  ttg::meta::probe_last< Predicate, Default >
 
struct  ttg::meta::probe_last< Predicate, Default, T >
 
struct  ttg::meta::probe_last< Predicate, Default, T1, Ts... >
 
struct  ttg::meta::probe_last< Predicate, Default, std::tuple< Ts... > >
 
struct  ttg::meta::probe_last< Predicate, Default, ttg::typelist< Ts... > >
 
struct  ttg::meta::probe_first< Predicate, Default >
 
struct  ttg::meta::probe_first< Predicate, Default, T1, Ts... >
 
struct  ttg::meta::probe_first< Predicate, Default, std::tuple< Ts... > >
 
struct  ttg::meta::probe_first< Predicate, Default, ttg::typelist< Ts... > >
 
struct  ttg::meta::probe_any< Predicate, Ts >
 
struct  ttg::meta::probe_any< Predicate, std::tuple< Ts... > >
 
struct  ttg::meta::probe_any< Predicate, ttg::typelist< Ts... > >
 
struct  ttg::meta::probe_all< Predicate, Ts >
 
struct  ttg::meta::probe_all< Predicate, std::tuple< Ts... > >
 
struct  ttg::meta::probe_all< Predicate, ttg::typelist< Ts... > >
 
struct  ttg::meta::is_void< T >
 
struct  ttg::meta::is_nonvoid< T >
 
struct  ttg::meta::is_last_void< Ts >
 
struct  ttg::meta::void_to_Void< T >
 
struct  ttg::meta::void_to_Void< void >
 
struct  ttg::meta::is_const_lvalue_reference< T >
 
struct  ttg::meta::is_nonconst_lvalue_reference< T >
 
struct  ttg::meta::is_ptr< T >
 
struct  ttg::meta::is_ptr< ttg::Ptr< T > >
 
struct  ttg::meta::is_buffer< T >
 
struct  ttg::meta::is_buffer< ttg::Buffer< T, A > >
 
struct  ttg::meta::is_buffer< const ttg::Buffer< T, A > >
 
struct  ttg::meta::is_devicescratch< T >
 
struct  ttg::meta::is_devicescratch< ttg::devicescratch< T > >
 
struct  ttg::meta::is_devicescratch< const ttg::devicescratch< T > >
 
struct  ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>
 
struct  ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>
 
struct  ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >
 
struct  ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >
 
struct  ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>
 
struct  ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>
 
struct  ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >
 
struct  ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >
 
struct  ttg::meta::take_first_n< std::tuple< Ts... >, N >
 
struct  ttg::meta::take_first_n< typelist< Ts... >, N >
 

Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::meta
 
 ttg::meta::detail
 

Typedefs

template<class... >
using ttg::meta::void_t = void
 
template<typename T >
using ttg::meta::remove_cvr_t = std::remove_cv_t< std::remove_reference_t< T > >
 
template<typename Tuple >
using ttg::meta::nonref_tuple_t = typename nonref_tuple< Tuple >::type
 
template<typename... TupleTs>
using ttg::meta::tuple_concat_t = typename tuple_concat< TupleTs... >::type
 
template<typename Tuple , template< typename > typename Pred>
using ttg::meta::filtered_tuple_t = typename filtered_tuple< Tuple, Pred >::type
 
template<typename T >
using ttg::meta::void_to_Void_t = typename void_to_Void< T >::type
 

Variables

template<template< typename > typename Predicate, bool Default, typename... Ts>
constexpr bool ttg::meta::probe_last_v = probe_last<Predicate, Default, Ts...>::value
 
template<template< typename > typename Predicate, bool Default, typename... Ts>
constexpr bool ttg::meta::probe_first_v = probe_first<Predicate, Default, Ts...>::value
 
template<template< typename > typename Predicate, typename... Ts>
constexpr bool ttg::meta::probe_any_v = probe_any<Predicate, Ts...>::value
 
template<template< typename > typename Predicate, typename... Ts>
constexpr bool ttg::meta::probe_all_v = probe_all<Predicate, Ts...>::value
 
template<typename T >
constexpr bool ttg::meta::is_Void_v = std::is_same_v<std::decay_t<T>, Void>
 
template<typename T >
constexpr bool ttg::meta::is_void_v = is_Void_v<T> || std::is_void_v<T>
 
template<typename T >
constexpr bool ttg::meta::is_nonvoid_v = !is_void_v<T>
 
template<typename... Ts>
constexpr bool ttg::meta::is_all_void_v = (is_void_v<Ts> && ...)
 
template<typename... Ts>
constexpr bool ttg::meta::is_all_Void_v = (is_Void_v<Ts> && ...)
 
template<typename... Ts>
constexpr bool ttg::meta::is_any_void_v = (is_void_v<Ts> || ...)
 
template<typename... Ts>
constexpr bool ttg::meta::is_any_Void_v = (is_Void_v<Ts> || ...)
 
template<typename... Ts>
constexpr bool ttg::meta::is_none_void_v = !is_any_void_v<Ts...>
 
template<typename... Ts>
constexpr bool ttg::meta::is_none_Void_v = !is_any_Void_v<Ts...>
 
template<typename... Ts>
constexpr bool ttg::meta::is_last_void_v = is_last_void<Ts...>::value
 
template<typename T >
constexpr bool ttg::meta::is_const_lvalue_reference_v
 
template<typename T >
constexpr bool ttg::meta::is_nonconst_lvalue_reference_v
 
template<typename... Ts>
constexpr bool ttg::meta::is_any_nonconst_lvalue_reference_v = (is_nonconst_lvalue_reference_v<Ts> || ...)
 
template<typename T >
constexpr bool ttg::meta::is_ptr_v = is_ptr<T>::value
 
template<typename T >
constexpr bool ttg::meta::is_buffer_v = is_buffer<T>::value
 
template<typename T >
constexpr bool ttg::meta::is_devicescratch_v = is_devicescratch<T>::value