CMS 3D CMS Logo

ColumnValues.h
Go to the documentation of this file.
1 #ifndef FWCore_SOA_ColumnValues_h
2 #define FWCore_SOA_ColumnValues_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/SOA
6 // Class : ColumnValues
7 //
15 //
16 // Original Author: Chris Jones
17 // Created: Thu, 24 Aug 2017 18:13:38 GMT
18 //
19 
20 // system include files
21 
22 // user include files
23 
24 // forward declarations
25 #include <cstddef>
26 namespace edm {
27  namespace soa {
28 
29  template <typename T>
30  class ColumnValues {
31  public:
32  ColumnValues(T const* iBegin, size_t iSize) : m_begin(iBegin), m_end(iBegin + iSize) {}
33 
34  T const* begin() const { return m_begin; }
35  T const* end() const { return m_end; }
36 
37  private:
38  T const* m_begin = nullptr;
39  T const* m_end = nullptr;
40  };
41 
42  template <typename T>
44  public:
45  MutableColumnValues(T* iBegin, size_t iSize) : m_begin(iBegin), m_end(iBegin + iSize) {}
46 
47  T* begin() const { return m_begin; }
48  T* end() const { return m_end; }
49 
50  private:
51  T* m_begin = nullptr;
52  T* m_end = nullptr;
53  };
54 
55  } // namespace soa
56 } // namespace edm
57 
58 #endif
T const * begin() const
Definition: ColumnValues.h:34
MutableColumnValues(T *iBegin, size_t iSize)
Definition: ColumnValues.h:45
ColumnValues(T const *iBegin, size_t iSize)
Definition: ColumnValues.h:32
HLT enums.
T const * end() const
Definition: ColumnValues.h:35
long double T