1 #ifndef CommonTools_Utils_StringObjectFunction_h
2 #define CommonTools_Utils_StringObjectFunction_h
14 template<
typename T,
bool DefaultLazyness=false>
17 type_(Reflex::
Type::ByTypeInfo(typeid(T))) {
18 if(! reco::parser::expressionParser<T>(expr,
expr_, lazy)) {
20 "failed to parse \"" + expr +
"\"");
25 type_(Reflex::
Type::ByTypeInfo(typeid(T))) {
28 using namespace Reflex;
29 Object
o(
type_, const_cast<T *>(& t));
30 return expr_->value(o);
boost::shared_ptr< ExpressionBase > ExpressionPtr
StringObjectFunction(const reco::parser::ExpressionPtr &expr)
StringObjectFunction(const std::string &expr, bool lazy=DefaultLazyness)
reco::parser::ExpressionPtr expr_
double operator()(const T &t) const