ATLAS Offline Software
GenerateIndexingPolicy.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /***************************************************************************
6  type generator that associates a known container with an IndexingPolicy.
7  Used by ElementLink
8  ----------------------------------------------------------------
9  ATLAS Collaboration
10  ***************************************************************************/
11 
12 // $Id: GenerateIndexingPolicy.h,v 1.3 2007-03-03 17:56:15 schaffer Exp $
13 
14 #ifndef ATHLINKS_TOOLS_GENERATEINDEXINGPOLICY_H
15 # define ATHLINKS_TOOLS_GENERATEINDEXINGPOLICY_H
16 
21 
22 
23 namespace SG {
24  template <class CONTAINER>
25  struct GenerateIndexingPolicy {
26  private:
27 
28  typedef IsSTLSequence<CONTAINER> isSTLSequence_t;
29 
31 
32  public:
33  typedef typename std::conditional<m_isSTLSequence,ForwardIndexingPolicy<CONTAINER>,typename DefaultIndexingPolicy<CONTAINER>::type>::type type;
34  };
35 }
36 
37 #endif // ATHLINKS_TOOLS_GENERATEINDEXINGPOLICIES_H
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
IsSTLSequence.h
IdentContIndexingPolicy.h
Indexing policy for an IdentifiableContainer.
SG::IsSTLSequence::value
static const bool value
Definition: IsSTLSequence.h:69
ForwardIndexingPolicy.h
Indexing policy for a vector-like container.
ERROR_PLEASE_ADD_ONE_OF_THE_PREDEFINED_POLICY_INCLUDE_FILES_OR_DEFINE_A_DEFAULT_INDEXING_POLICY_FOR_THIS_TYPE
Definition: DefaultIndexingPolicy.h:21
DefaultIndexingPolicy.h
SG::GenerateIndexingPolicy::type
std::conditional< m_isSTLSequence, ForwardIndexingPolicy< CONTAINER >, typename DefaultIndexingPolicy< CONTAINER >::type >::type type
Definition: GenerateIndexingPolicy.h:43
SG::GenerateIndexingPolicy::m_isSTLSequence
static const bool m_isSTLSequence
Definition: GenerateIndexingPolicy.h:40
SG::GenerateIndexingPolicy::isSTLSequence_t
IsSTLSequence< CONTAINER > isSTLSequence_t
Definition: GenerateIndexingPolicy.h:38