#include "BinaryOperatorFactory.hpp" #include "utils.hpp" template BinaryOperatorFactory::BinaryOperatorFactory() noexcept { _binary_operations["+"] = [](auto lhs, auto rhs) { return lhs + rhs; }; _binary_operations["-"] = [](auto lhs, auto rhs) { return lhs - rhs; }; _binary_operations["*"] = [](auto lhs, auto rhs) { return lhs * rhs; }; _binary_operations["/"] = [](auto lhs, auto rhs) { return lhs / rhs; }; } template auto BinaryOperatorFactory::make(std::string_view text) noexcept -> std::optional { auto found_op = _binary_operations.find(std::string{sanitize_text(text)}); if (found_op == _binary_operations.end()) return std::nullopt; return found_op->second; }