File indexing completed on 2024-04-06 12:01:17
0001 #ifndef CommonTools_Utils_MethodArgumentSetter_h
0002 #define CommonTools_Utils_MethodArgumentSetter_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "CommonTools/Utils/interface/parser/MethodArgumentStack.h"
0013 #include <cassert>
0014
0015 namespace reco {
0016 namespace parser {
0017 struct MethodArgumentSetter {
0018 MethodArgumentSetter(MethodArgumentStack &stack) : stack_(stack) {}
0019 template <typename T>
0020 void operator()(const T &n) const {
0021 stack_.push_back(AnyMethodArgument(n));
0022 }
0023 void operator()(const char *begin, const char *end) const {
0024 assert(begin + 1 <= end - 1);
0025
0026
0027 if (*(end - 1) != *begin) {
0028 --end;
0029 }
0030 stack_.push_back(AnyMethodArgument(std::string(begin + 1, end - 1)));
0031 }
0032
0033 private:
0034 MethodArgumentStack &stack_;
0035 };
0036 }
0037 }
0038
0039 #endif