ATLAS Offline Software
Loading...
Searching...
No Matches
AthenaKernel/AthenaKernel/ClassName.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-2024 CERN for the benefit of the ATLAS collaboration
4*/
11
12
13#ifndef ATHENAKERNEL_CLASSNAME_H
14#define ATHENAKERNEL_CLASSNAME_H
15
16
17#include <string>
18#include <typeinfo>
19
20
29template <class T>
31{
32public:
36 static std::string name()
37#ifdef __GNUC__
38 // Force this function to appear as a symbol in the output file,
39 // even in an optimized build where it's always inlined.
40 // Otherwise, we get complaints from cling that it can't find the symbol
41 // (as of root 6.04).
43#endif
44 ;
45};
46
47
48namespace Athena {
49
50
58std::string typeinfoName (const std::type_info& ti);
59
60
61} // namespace Athena
62
63
65
66
67#endif // not ATHENAKERNEL_CLASSNAME_H
__attribute__((always_inline)) inline uint16_t TileCalibDrawerBase
An interface for getting the name of a class as a string.
static std::string name()
Return the name of class T as a string.
holding In fact this class is here in order to allow STL container for all features This class is sho...
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....
std::string typeinfoName(const std::type_info &ti)
Convert a type_info to a demangled string.