ATLAS Offline Software
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
impl::class_can_be_tuple< Check > Struct Template Reference

#include <CaloGPUClusterAndCellDataMonitorOptions.h>

Collaboration diagram for impl::class_can_be_tuple< Check >:

Public Types

template<class T >
using tuple_type_checker_type = decltype(tuple_type_checker< T >(nullptr))
 

Static Public Member Functions

template<class T >
static constexpr auto tuple_type_checker (T *) -> decltype(typename T::TupleType
 
template<class T >
static constexpr void tuple_type_checker (...)
 
template<class T >
static constexpr auto to_tuple_checker (T *) -> decltype(&T::to_tuple)
 
template<class T >
static constexpr void to_tuple_checker (...)
 
template<class T >
static constexpr auto from_tuple_checker (T *) -> decltype(&T::from_tuple)
 
template<class T >
static constexpr void from_tuple_checker (...)
 
template<class T >
static constexpr auto tuple_size_checker (T *) -> decltype(T::TupleSize)
 
template<class T >
static constexpr void tuple_size_checker (...)
 

Static Public Attributes

template<class T >
static constexpr bool tuple_type_exists = !std::is_same_v<tuple_type_checker_type<T>, void>
 
template<class T >
static constexpr bool to_tuple_exists = std::is_pointer_v<decltype( to_tuple_checker<T>(nullptr) )>
 
template<class T >
static constexpr bool from_tuple_exists = std::is_pointer_v<decltype( from_tuple_checker<T>(nullptr) )>
 
template<class T >
static constexpr bool tuple_size_exists = !std::is_void_v<decltype(tuple_size_checker<T>(nullptr))>
 
constexpr static bool value = tuple_type_exists<Check> && to_tuple_exists<Check> && from_tuple_exists<Check> && tuple_size_exists<Check>
 

Detailed Description

template<class Check>
struct impl::class_can_be_tuple< Check >

Definition at line 47 of file CaloGPUClusterAndCellDataMonitorOptions.h.

Member Typedef Documentation

◆ tuple_type_checker_type

template<class Check >
template<class T >
using impl::class_can_be_tuple< Check >::tuple_type_checker_type = decltype( tuple_type_checker<T>(nullptr) )

Definition at line 53 of file CaloGPUClusterAndCellDataMonitorOptions.h.

Member Function Documentation

◆ from_tuple_checker() [1/2]

template<class Check >
template<class T >
static constexpr void impl::class_can_be_tuple< Check >::from_tuple_checker (   ...)
inlinestaticconstexpr

◆ from_tuple_checker() [2/2]

template<class Check >
template<class T >
static constexpr auto impl::class_can_be_tuple< Check >::from_tuple_checker ( T *  ) -> decltype(&T::from_tuple)
inlinestaticconstexpr

◆ to_tuple_checker() [1/2]

template<class Check >
template<class T >
static constexpr void impl::class_can_be_tuple< Check >::to_tuple_checker (   ...)
inlinestaticconstexpr

◆ to_tuple_checker() [2/2]

template<class Check >
template<class T >
static constexpr auto impl::class_can_be_tuple< Check >::to_tuple_checker ( T *  ) -> decltype(&T::to_tuple)
inlinestaticconstexpr

◆ tuple_size_checker() [1/2]

template<class Check >
template<class T >
static constexpr void impl::class_can_be_tuple< Check >::tuple_size_checker (   ...)
inlinestaticconstexpr

◆ tuple_size_checker() [2/2]

template<class Check >
template<class T >
static constexpr auto impl::class_can_be_tuple< Check >::tuple_size_checker ( T *  ) -> decltype(T::TupleSize)
inlinestaticconstexpr

◆ tuple_type_checker() [1/2]

template<class Check >
template<class T >
static constexpr void impl::class_can_be_tuple< Check >::tuple_type_checker (   ...)
inlinestaticconstexpr

◆ tuple_type_checker() [2/2]

template<class Check >
template<class T >
static constexpr auto impl::class_can_be_tuple< Check >::tuple_type_checker ( T *  ) -> decltype(typename T::TupleType
inlinestaticconstexpr

Definition at line 50 of file CaloGPUClusterAndCellDataMonitorOptions.h.

50 {});

Member Data Documentation

◆ from_tuple_exists

template<class Check >
template<class T >
constexpr bool impl::class_can_be_tuple< Check >::from_tuple_exists = std::is_pointer_v<decltype( from_tuple_checker<T>(nullptr) )>
inlinestaticconstexpr

Definition at line 69 of file CaloGPUClusterAndCellDataMonitorOptions.h.

◆ to_tuple_exists

template<class Check >
template<class T >
constexpr bool impl::class_can_be_tuple< Check >::to_tuple_exists = std::is_pointer_v<decltype( to_tuple_checker<T>(nullptr) )>
inlinestaticconstexpr

Definition at line 62 of file CaloGPUClusterAndCellDataMonitorOptions.h.

◆ tuple_size_exists

template<class Check >
template<class T >
constexpr bool impl::class_can_be_tuple< Check >::tuple_size_exists = !std::is_void_v<decltype(tuple_size_checker<T>(nullptr))>
inlinestaticconstexpr

Definition at line 76 of file CaloGPUClusterAndCellDataMonitorOptions.h.

◆ tuple_type_exists

template<class Check >
template<class T >
constexpr bool impl::class_can_be_tuple< Check >::tuple_type_exists = !std::is_same_v<tuple_type_checker_type<T>, void>
inlinestaticconstexpr

Definition at line 55 of file CaloGPUClusterAndCellDataMonitorOptions.h.

◆ value

template<class Check >
constexpr static bool impl::class_can_be_tuple< Check >::value = tuple_type_exists<Check> && to_tuple_exists<Check> && from_tuple_exists<Check> && tuple_size_exists<Check>
inlinestaticconstexpr

Definition at line 78 of file CaloGPUClusterAndCellDataMonitorOptions.h.


The documentation for this struct was generated from the following file: