| 148 | } |
| 149 | |
| 150 | static ::std::unique_ptr<Operator> create( |
| 151 | const ::std::string& op, const ValueIndex& result, |
| 152 | const ValueIndex& loperand, const ValueIndex& roperand) noexcept { |
| 153 | auto it = _s_registry.find(op); |
| 154 | if (it != _s_registry.end()) { |
| 155 | return it->second(result, loperand, roperand); |
| 156 | } |
| 157 | return ::std::unique_ptr<Operator>(); |
| 158 | } |
| 159 | |
| 160 | protected: |
| 161 | template <typename T> |