/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
CommonTools/Utils/interface/parser/ExpressionBinaryOperatorSetter.h
43 строки
1 KB
swagata87
custom nano for e/gamma
28 фев 2024, 11:43
28 фев 2024, 11:43
c2be273
Код
Авторство
О чём код?
#ifndef CommonTools_Utils_ExpressionBinaryOperatorSetter_h #define CommonTools_Utils_ExpressionBinaryOperatorSetter_h /* \class reco::parser::ExpressionBinaryOperator * * Binary operator expression setter * * \author original version: Chris Jones, Cornell, * adapted by Luca Lista, INFN * * \version $Revision: 1.2 $ * */ #include "CommonTools/Utils/interface/parser/ExpressionBinaryOperator.h" #include "CommonTools/Utils/interface/parser/ExpressionStack.h" #include <cmath> namespace reco { namespace parser { template <typename T> struct power_of { T operator()(T lhs, T rhs) const { return pow(lhs, rhs); } }; template <typename T> struct int_div_remainder { T operator()(T lhs, T rhs) const { return int(lhs) % int(rhs); } }; template <typename Op> struct ExpressionBinaryOperatorSetter { ExpressionBinaryOperatorSetter(ExpressionStack& stack) : stack_(stack) {} void operator()(const char*, const char*) const { stack_.push_back(ExpressionPtr(new ExpressionBinaryOperator<Op>(stack_))); } private: ExpressionStack& stack_; }; } // namespace parser } // namespace reco #endif