ATLAS Offline Software
Loading...
Searching...
No Matches
HandleClassifier.h
Go to the documentation of this file.
1// This file's extension implies that it's C, but it's really -*- C++ -*-.
2/*
3 * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration.
4 */
5// $Id$
12
13
14#ifndef ATHENABASECOMPS_HANDLECLASSIFIER_H
15#define ATHENABASECOMPS_HANDLECLASSIFIER_H
16
17
21#include <type_traits>
22
23
24namespace SG {
25
26
27// Tags to describe the type of a handle property.
32
33
40template <class T>
42{
43 typedef typename std::conditional<std::is_base_of<SG::VarHandleBase, T>::value,
46
47 typedef typename std::conditional<std::is_base_of<SG::VarHandleKey, T>::value,
50
51
52 typedef typename std::conditional<std::is_base_of<SG::VarHandleKeyArray, T>::value,
55};
56
57
58} // namespace SG
59
60
61#endif // not ATHENABASECOMPS_HANDLECLASSIFIER_H
Base class for VarHandle classes.
Base class for VarHandleKeyArray for reading from StoreGate.
A property holding a SG store/key/clid from which a VarHandle is made.
Forward declaration.
Helper to classify the type of a handle property.
std::conditional< std::is_base_of< SG::VarHandleBase, T >::value, VarHandleType, NotHandleType >::type type1
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
std::conditional< std::is_base_of< SG::VarHandleKey, T >::value, VarHandleKeyType, type1 >::type type2