ATLAS Offline Software
TypeTools.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 /*
3  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
4  */
5 #ifndef ATHLINKS_TOOLS_TYPETOOLS_H
6 #define ATHLINKS_TOOLS_TYPETOOLS_H
7 
8 namespace TypeTools {
9 
16  template< typename T >
17  struct Copy {
19  typedef T type;
21  typedef const T& const_reference;
23  typedef const T* const_pointer;
24  };
25 
28  template< typename T >
29  struct Copy< T* > {
31  typedef const T* type;
33  typedef const T* const_reference;
35  typedef const T* const* const_pointer;
36  };
37 
38 } // namespace TypeTools
39 
40 #endif // ATHLINKS_TOOLS_TYPETOOLS_H
TypeTools
Definition: TypeTools.h:8
TypeTools::Copy< T * >::const_reference
const T * const_reference
Constant reference to an element in the container.
Definition: TypeTools.h:33
TypeTools::Copy::type
T type
Type of the elements in the container.
Definition: TypeTools.h:19
TypeTools::Copy< T * >::type
const T * type
Type of the elements in the container.
Definition: TypeTools.h:31
TypeTools::Copy::const_pointer
const T * const_pointer
Constant pointer to an element in the container.
Definition: TypeTools.h:23
TypeTools::Copy
Trait class defining how ElementLink should handle a container.
Definition: TypeTools.h:17
TypeTools::Copy::const_reference
const T & const_reference
Constant reference to an element in the container.
Definition: TypeTools.h:21
TypeTools::Copy< T * >::const_pointer
const T *const * const_pointer
Constant pointer to an element in the container.
Definition: TypeTools.h:35
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35