ATLAS Offline Software
Control
AthAllocators
AthAllocators
ArenaBlockAlignDetail.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
17
#ifndef ATLALLOCATORS__ARENABLOCKALIGNDETAIL
18
#define ATLALLOCATORS__ARENABLOCKALIGNDETAIL
19
20
#include <cstddef>
21
namespace
SG
{
22
namespace
ArenaBlockAlignDetail {
23
24
struct
padForAlign
{
25
// gcc and clang seem to define this
26
// But not the same way ...
27
// gcc provides 16,32,64 as we change arch
28
// clang seem to provide 16 always...
29
// From the nature of the Block Header (other elements total size 24)
30
// 16 vs 32 costs the same in space overhead.
31
// So minimum 32
32
#if defined(__BIGGEST_ALIGNMENT__) && (__BIGGEST_ALIGNMENT__ > 32)
33
alignas
(__BIGGEST_ALIGNMENT__)
double
dummy
;
34
#else
35
alignas
(32)
double
dummy
;
36
#endif
37
};
38
39
constexpr
size_t
alignment
=
std::alignment_of<padForAlign>::value
;
40
41
}
// namespace ArenaBlockAlignDetail
42
}
// namespace SG
43
#endif
SG
Forward declaration.
Definition:
CaloCellPacker_400_500.h:32
athena.value
value
Definition:
athena.py:124
SG::ArenaBlockAlignDetail::padForAlign::dummy
double dummy
Definition:
ArenaBlockAlignDetail.h:35
SG::ArenaBlockAlignDetail::alignment
constexpr size_t alignment
Definition:
ArenaBlockAlignDetail.h:39
SG::ArenaBlockAlignDetail::padForAlign
Definition:
ArenaBlockAlignDetail.h:24
Generated on Sun Dec 22 2024 21:06:58 for ATLAS Offline Software by
1.8.18