1 #ifndef CommonToolsUtilsExpressionEvaluatorTemplates_H
2 #define CommonToolsUtilsExpressionEvaluatorTemplates_H
12 template <
typename Ret,
typename... Args>
18 template <
typename Object>
20 virtual bool eval(Object
const&)
const = 0;
24 template <
typename Object>
26 virtual double eval(Object
const&)
const = 0;
30 template <
typename Object>
33 using Mask = std::vector<bool>;
36 mask.resize(cands.size());
44 template <
typename Object>
57 template <
typename Object>
60 using Indices = std::vector<unsigned int>;
64 for (
auto const&
c : cands) {
76 #endif // CommonToolsUtilsExpressionEvaluatorTemplates_H
void mask(Collection const &cands, Mask &mask, F f) const
const edm::EventSetup & c
virtual ~MaskCollection()
std::vector< Object const * > Collection
virtual double eval(Object const &) const =0
virtual void eval(Collection &) const =0
Container::value_type value_type
std::vector< unsigned int > Indices
std::vector< Object const * > Collection
virtual ~genericExpression()
virtual void eval(Collection const &, Indices &) const =0
virtual Ret operator()(Args...) const =0
virtual bool eval(Object const &) const =0
void select(Collection &cands, F f) const
virtual void eval(Collection const &, Mask &) const =0
virtual ~SelectInCollection()
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
void select(Collection const &cands, Indices &inds, F f) const
virtual ~SelectIndecesInCollection()
std::vector< Object const * > Collection