FWCore
SOA
interface
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>
59
struct
ColumnFillerHolder
{
60
using
Column_type
= COL;
61
F
m_f
;
62
};
63
64
template
<
typename
T,
typename
INHERIT>
65
struct
Column
{
66
using
type
=
T
;
67
68
static
constexpr
const
char
*
const
&
label
() {
return
INHERIT::kLabel; }
69
70
template
<
typename
F>
71
static
ColumnFillerHolder<INHERIT, F>
filler
(
F
&& iF) {
72
return
{iF};
73
}
74
75
private
:
76
Column
() =
default
;
77
Column
(
const
Column
&) =
delete
;
// stop default
78
79
const
Column
&
operator=
(
const
Column
&) =
delete
;
// stop default
80
};
81
82
}
// namespace soa
83
}
// namespace edm
84
#define SOA_DECLARE_COLUMN(_ClassName_, _Type_, _String_) \
85
struct _ClassName_ : public edm::soa::Column<_Type_, _ClassName_> { \
86
static constexpr const char* const kLabel = _String_; \
87
}
88
#endif
edm::soa::Column::label
static constexpr const char *const & label()
Definition:
Column.h:68
edm
HLT enums.
Definition:
AlignableModifier.h:19
edm::soa::Column::type
T type
Definition:
Column.h:66
F
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition:
blowfish.cc:163
edm::soa::Column::filler
static ColumnFillerHolder< INHERIT, F > filler(F &&iF)
Definition:
Column.h:71
edm::soa::Column::Column
Column()=default
edm::soa::ColumnFillerHolder::m_f
F m_f
Definition:
Column.h:61
edm::soa::ColumnFillerHolder::Column_type
COL Column_type
Definition:
Column.h:60
T
long double T
Definition:
Basic3DVectorLD.h:48
edm::soa::Column
Definition:
Column.h:65
edm::soa::Column::operator=
const Column & operator=(const Column &)=delete
edm::soa::ColumnFillerHolder
Definition:
Column.h:59
Generated for CMSSW Reference Manual by
1.8.16