CMS 3D CMS Logo

Column.h
Go to the documentation of this file.
1 #ifndef FWCore_SOA_Column_h
2 #define FWCore_SOA_Column_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/SOA
6 // Class : Column
7 //
42 //
43 // Original Author: Chris Jones
44 // Created: Thu, 24 Aug 2017 16:17:56 GMT
45 //
46 
47 // system include files
48 
49 // user include files
50 
51 // forward declarations
52 namespace edm {
53 namespace soa {
54 
58 template<typename COL, typename F>
60  using Column_type = COL;
61  F m_f;
62 };
63 
64 template <typename T, typename INHERIT>
65 struct Column
66 {
67  using type = T;
68 
69  static constexpr const char* const& label() {
70  return INHERIT::kLabel;
71  }
72 
73  template <typename F>
74  static ColumnFillerHolder<INHERIT,F> filler(F&& iF) { return {iF}; }
75 
76  private:
77  Column() = default;
78  Column(const Column&) = delete; // stop default
79 
80  const Column& operator=(const Column&) = delete; // stop default
81 };
82 
83 }
84 }
85 #define SOA_DECLARE_COLUMN(_ClassName_,_Type_,_String_) \
86  struct _ClassName_ : public edm::soa::Column<_Type_,_ClassName_> {static constexpr const char * const kLabel=_String_; }
87 #endif
#define constexpr
static constexpr const char *const & label()
Definition: Column.h:69
static ColumnFillerHolder< INHERIT, F > filler(F &&iF)
Definition: Column.h:74
HLT enums.
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:281
long double T