ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
Namespaces | |
namespace | detail_aborter |
namespace | detail_slc |
namespace | Linearizer |
namespace | Parameter |
namespace | Stepper |
namespace | VertexFinder |
namespace | VertexFitter |
Typedefs | |
template<template< class...> class Op, class... Args> | |
using | is_detected = typename detail::detector< detail::nonesuch, void, Op, Args...>::value_t |
template<template< class...> class Op, class... Args> | |
using | detected_t = typename detail::detector< detail::nonesuch, void, Op, Args...>::type |
template<class Expected , template< class...> class Op, class... Args> | |
using | is_detected_exact = std::is_same< Expected, detected_t< Op, Args...>> |
template<class To , template< class...> class Op, class... Args> | |
using | is_detected_convertible = std::is_convertible< detected_t< Op, Args...>, To > |
template<class Default , template< class...> class Op, class... Args> | |
using | detected_or = detail::detector< Default, void, Op, Args...> |
Variables | |
template<typename T , typename propagator_state_t , typename stepper_t > | |
constexpr bool | abort_condition_signature_check_v |
Meta function for checking if an aborter has a valid interface. | |
template<bool... Bs> | |
constexpr bool | require = std::conjunction<std::bool_constant<Bs>...>::value |
template<bool... Bs> | |
constexpr bool | either = std::disjunction<std::bool_constant<Bs>...>::value |
template<bool... Bs> | |
constexpr bool | disallow = not require<Bs...> |
template<template< class...> class Op, class... Args> | |
constexpr bool | exists = is_detected<Op, Args...>::value |
template<class To , template< class...> class Op, class... Args> | |
constexpr bool | converts_to = is_detected_convertible<To, Op, Args...>::value |
template<class Exact , template< class...> class Op, class... Args> | |
constexpr bool | identical_to = is_detected_exact<Exact, Op, Args...>::value |
template<typename T , typename R , template< class...> class M, typename... Arguments> | |
constexpr bool | has_method = M<T, R, Arguments...>::template tv<T>::value |
template<typename T , template< class...> class M, typename V > | |
constexpr bool | has_member = identical_to<V, M, T> |
The following operators have to be implemented in order to satisfy as an abort condition
clang-format off
IF the aborter declares an action_type
upon whose result it will depend:
IF the aborter does NOT declare an action_type
:
clang-format off
using Acts::concept::detected_or = typedef detail::detector<Default, void, Op, Args...> |
Helper which invokes the detector with a default type, and resolves to the type.
Default | The type to resolve to if Op<Args...> does not resolve. |
Op | The operation |
Args | The argument to the operation |
Definition at line 140 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 140 of file TypeTraits.hpp
using Acts::concept::detected_t = typedef typename detail::detector<detail::nonesuch, void, Op, Args...>::type |
This type calls into the detector (same as is_detected
) but it extracts the return type of Op<Args...>
.
Op | The operation |
Args | The arguments to the operation |
Definition at line 108 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 108 of file TypeTraits.hpp
using Acts::concept::is_detected = typedef typename detail::detector<detail::nonesuch, void, Op, Args...>::value_t |
This type ties together the detection idiom. It instantiates the detector
template with the Op
and Args
and resolves to the exact value type. In essence, if Op<Args...>
succeeds, this will evaluate to std::true_type
, and if not, it will evaluate to std::false_type
.
Op | The operation to test |
Args | The arguments to the operation |
Definition at line 98 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 98 of file TypeTraits.hpp
using Acts::concept::is_detected_convertible = typedef std::is_convertible<detected_t<Op, Args...>, To> |
This evaluates Op
inside the detector, and checks whether the resolved type is convertible to To
.
To | The type to check convertibility to. |
Op | The operation |
Args | The arguments to the operation |
Definition at line 130 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 130 of file TypeTraits.hpp
using Acts::concept::is_detected_exact = typedef std::is_same<Expected, detected_t<Op, Args...>> |
This invokes detected_t
, and checks whether its result matches Expected
.
Expected | The expected result of the operation. |
Op | The operation |
Args | The arguments to the operation |
Definition at line 118 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 118 of file TypeTraits.hpp
constexpr bool Acts::concept::abort_condition_signature_check_v |
Meta function for checking if an aborter has a valid interface.
Definition at line 102 of file abort_condition_signature_check.hpp.
View newest version in sPHENIX GitHub at line 102 of file abort_condition_signature_check.hpp
Referenced by Acts::AbortList< PathLimitReached >::operator()().
constexpr bool Acts::concept::converts_to = is_detected_convertible<To, Op, Args...>::value |
Alias to conversion check, which also extracts the constexpr boolean value.
To | The type to check convertibility to. |
Op | The operation |
Args | The arguments to the operation. |
Definition at line 185 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 185 of file TypeTraits.hpp
Referenced by Acts::VoidMeasurementCalibrator::operator()().
constexpr bool Acts::concept::disallow = not require<Bs...> |
Alias for the negation of a require
. This is essentially a NOT ANY test.
Bs | The booleans. |
Definition at line 168 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 168 of file TypeTraits.hpp
constexpr bool Acts::concept::either = std::disjunction<std::bool_constant<Bs>...>::value |
Helper which forms the logical OR of its arguments. Converts to std::bool_constant
.
Bs | The booleans to combine. |
Definition at line 161 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 161 of file TypeTraits.hpp
constexpr bool Acts::concept::exists = is_detected<Op, Args...>::value |
Alias to is_detected
which unpacks the constexpr boolean value.
Op | The operation |
Args | The arguments to the operation. |
Definition at line 176 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 176 of file TypeTraits.hpp
Referenced by Fun4AllInputManager::AddListFile(), G4Tet::CalculateExtent(), FW::determineEventFilesRange(), FW::ensureWritableDirectory(), Acts::SurfaceArrayCreator::findKeySurfaces(), and HcalRawTowerBuilder::InitRun().
constexpr bool Acts::concept::has_member = identical_to<V, M, T> |
Helper to assert if a member of a given type exists. Basically only calls into identical_to
but is nicer to read.
T | The type to check existence of member on. |
M | The member type trait |
V | The type that the member is supposed to have. |
Definition at line 217 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 217 of file TypeTraits.hpp
constexpr bool Acts::concept::has_method = M<T, R, Arguments...>::template tv<T>::value |
Helper which evaluates whether the type T
has a method with a given signature.
T | The type to check on. This can contain a const qualifier if you want to check on that. |
R | The return type |
M | The method trait, as generated by METHOD_TRAIT |
Arguments | The argument types that make up the signature. |
Definition at line 207 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 207 of file TypeTraits.hpp
Referenced by Acts::Propagator< stepper_t, navigator_t >::propagate().
constexpr bool Acts::concept::identical_to = is_detected_exact<Exact, Op, Args...>::value |
Unpacks the constexpr boolean value from is_detected_exact
Exact | The type to check identity against |
Op | The operation |
Args | The arguments to the operation. |
Definition at line 194 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 194 of file TypeTraits.hpp
constexpr bool Acts::concept::require = std::conjunction<std::bool_constant<Bs>...>::value |
Define some sort of "Domain Specific Languagr" to declare concepts a little more naturally. These are taken from https://izzys.casa/2016/09/implementing-concepts-in-cxx/ Helper which combines a set of predicates (constexpr bools) with a logical AND. Converts to std::bool_constant
.
Bs | The booleans to combine |
Definition at line 153 of file TypeTraits.hpp.
View newest version in sPHENIX GitHub at line 153 of file TypeTraits.hpp