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 const char* const& label() {
70  static char const* const s_label(INHERIT::kLabel);
71  return s_label;
72  }
73 
74  template <typename F>
75  static ColumnFillerHolder<INHERIT,F> filler(F&& iF) { return {iF}; }
76 
77  private:
78  Column() = default;
79  Column(const Column&) = delete; // stop default
80 
81  const Column& operator=(const Column&) = delete; // stop default
82 };
83 
84 }
85 }
86 #define SOA_DECLARE_COLUMN(_ClassName_,_Type_,_String_) \
87  struct _ClassName_ : public edm::soa::Column<_Type_,_ClassName_> {static constexpr const char * const kLabel=_String_; }
88 #endif
static const char *const & label()
Definition: Column.h:69
static ColumnFillerHolder< INHERIT, F > filler(F &&iF)
Definition: Column.h:75
HLT enums.
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:281
long double T