diff --git a/src/inja.hpp b/src/inja.hpp index 57d51dd..786ae33 100644 --- a/src/inja.hpp +++ b/src/inja.hpp @@ -337,7 +337,7 @@ class Renderer { public: ElementNotation element_notation; - std::map> map_callbacks; + std::map> map_callbacks; template bool eval_expression(const Parsed::ElementExpression& element, json data) { @@ -349,11 +349,11 @@ public: } template - T eval_expression(const Parsed::ElementExpression& element, json data) { + T eval_expression(const Parsed::ElementExpression& element, const json &data) { return eval_function(element, data).get(); } - json eval_function(const Parsed::ElementExpression& element, json data) { + json eval_function(const Parsed::ElementExpression& element, const json& data) { switch (element.function) { case Parsed::Function::Upper: { std::string str = eval_expression(element.args[0], data); @@ -909,13 +909,13 @@ public: return j; } - void add_callback(std::string name, int number_arguments, std::function callback) { + void add_callback(std::string name, int number_arguments, std::function callback) { parser.regex_map_callbacks[name] = Parser::function_regex(name, number_arguments); renderer.map_callbacks[name] = callback; } template - T get_argument(Parsed::Arguments args, int index, json data) { + T get_argument(Parsed::Arguments args, int index, const json& data) { return renderer.eval_expression(args[index], data); } };