1 #ifndef FWCore_Utilities_SoATuple_h 2 #define FWCore_Utilities_SoATuple_h 104 template <
typename T>
107 template <
typename... Args>
152 delete[]
static_cast<AlignedType*
>(
m_values[0]);
160 template <
unsigned int I>
162 unsigned int iIndex)
const {
169 template <
unsigned int I>
174 #if GCC_PREREQUISITE(4, 7, 0) 181 template <
unsigned int I>
214 template <
typename... FArgs>
225 template <
unsigned int I>
227 unsigned int iIndex) {
234 template <
unsigned int I>
238 #if GCC_PREREQUISITE(4, 7, 0) 239 return static_cast<ReturnType*
>(__builtin_assume_aligned(
m_values[
I], Helper::kAlignment));
245 template <
unsigned int I>
255 for (
unsigned int i = 0;
i <
sizeof...(Args); ++
i) {
278 const size_t itemsNeeded = (memoryNeededInBytes + max_alignment - 1) /
sizeof(AlignedType);
279 char* newMemory =
static_cast<char*
>(
static_cast<void*
>(
new AlignedType[itemsNeeded]));
283 delete[]
static_cast<AlignedType*
>(oldMemory);
void swap(SoATuple< Args... > &iOther)
void changeSize(unsigned int iToSize)
std::tuple< Args... > element
void swap(Association< C > &lhs, Association< C > &rhs)
SoATuple(SoATuple< Args... > &&iOther)
void push_back(element const &values)
std::map< DetId, double > ReturnType
soahelper::AlignmentHelper< typename std::tuple_element< I, std::tuple< Args... > >::type >::Type const * begin() const
const std::complex< double > I
soahelper::AlignmentHelper< typename std::tuple_element< I, std::tuple< Args... > >::type >::Type * begin()
const SoATuple< Args... > & operator=(const SoATuple< Args... > &iRHS)
soahelper::AlignmentHelper< typename std::tuple_element< I, std::tuple< Args... > >::type >::Type const * end() const
void emplace_back(FArgs &&... values)
soahelper::AlignmentHelper< typename std::tuple_element< I, std::tuple< Args... > >::type >::Type * end()
SoATuple< Args... > & operator=(SoATuple< Args... > &&iRHS)
void reserve(unsigned int iToSize)
SoATuple(const SoATuple< Args... > &iOther)
void * m_values[sizeof...(Args)]