ATLAS Offline Software
Control
AthenaKernel
AthenaKernel
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
*/
13
#ifndef ATHENAKERNEL_CLASSNAME_H
14
#define ATHENAKERNEL_CLASSNAME_H
15
16
17
#include <string>
18
#include <typeinfo>
19
20
29
template
<
class
T>
30
class
ClassName
31
{
32
public
:
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).
42
__attribute__
((
used
))
43
#endif
44
;
45
};
46
47
48
namespace
Athena
{
49
50
58
std::string
typeinfoName
(
const
std::type_info& ti);
59
60
61
}
// namespace Athena
62
63
64
#include "
AthenaKernel/ClassName.icc
"
65
66
67
#endif // not ATHENAKERNEL_CLASSNAME_H
used
Athena::typeinfoName
std::string typeinfoName(const std::type_info &ti)
Convert a type_info to a demangled string.
Definition:
AthenaKernel/src/ClassName.cxx:23
Athena
Some weak symbol referencing magic...
Definition:
AthLegacySequence.h:21
ClassName.icc
ClassName
An interface for getting the name of a class as a string.
Definition:
AthenaKernel/AthenaKernel/ClassName.h:31
ClassName::name
static std::string name()
Return the name of class T as a string.
__attribute__
__attribute__((always_inline)) inline uint16_t TileCalibDrawerBase
Definition:
TileCalibDrawerBase.h:190
Generated on Fri Apr 18 2025 21:08:32 for ATLAS Offline Software by
1.8.18