1 #ifndef FWCore_Utilities_SoATuple_h 2 #define FWCore_Utilities_SoATuple_h 106 template <
typename... Args>
145 delete []
static_cast<AlignedType*
>(
m_values[0]);
153 template<
unsigned int I>
156 return *(
static_cast<ReturnType const*
>(
m_values[
I])+iIndex);
160 template<
unsigned int I>
164 #if GCC_PREREQUISITE(4,7,0) 165 return static_cast<ReturnType const*
>(__builtin_assume_aligned(
m_values[I],Helper::kAlignment));
167 return static_cast<ReturnType const*
>(
m_values[
I]);
171 template<
unsigned int I>
202 template<
typename... FArgs>
212 template<
unsigned int I>
215 return *(
static_cast<ReturnType*
>(
m_values[
I])+iIndex);
219 template<
unsigned int I>
223 #if GCC_PREREQUISITE(4,7,0) 224 return static_cast<ReturnType*
>(__builtin_assume_aligned(
m_values[I],Helper::kAlignment));
226 return static_cast<ReturnType*
>(
m_values[
I]);
230 template<
unsigned int I>
239 for(
unsigned int i=0;
i<
sizeof...(Args);++
i) {
261 const size_t itemsNeeded = (memoryNeededInBytes+max_alignment-1)/
sizeof(AlignedType);
262 char * newMemory =
static_cast<char*
>(
static_cast<void*
>(
new AlignedType[itemsNeeded]));
266 delete []
static_cast<AlignedType*
>(oldMemory);
soahelper::AlignmentHelper< typename std::tuple_element< I, std::tuple< Args... > >::type >::Type const * begin() const
void swap(SoATuple< Args... > &iOther)
void changeSize(unsigned int iToSize)
std::tuple< Args... > element
void emplace_back(FArgs &&...values)
SoATuple(SoATuple< Args... > &&iOther)
void push_back(element const &values)
std::map< DetId, double > ReturnType
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
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
soahelper::AlignmentHelper< typename std::tuple_element< I, std::tuple< Args... > >::type >::Type * end()
void reserve(unsigned int iToSize)
SoATuple(const SoATuple< Args... > &iOther)
void * m_values[sizeof...(Args)]