diff --git a/src/language/node_processor/FunctionProcessor.hpp b/src/language/node_processor/FunctionProcessor.hpp index 7c1e06917fab5ba5c2261ab963e8aa214174d43d..41e856d47b78f3a5a0b5c60885bf13cbdecdc3e8 100644 --- a/src/language/node_processor/FunctionProcessor.hpp +++ b/src/language/node_processor/FunctionProcessor.hpp @@ -10,9 +10,12 @@ #include <node_processor/ASTNodeExpressionListProcessor.hpp> -struct IFunctionArgumentConverter +class IFunctionArgumentConverter { + public: virtual DataVariant convert(ExecutionPolicy& exec_policy, DataVariant&& value) = 0; + + virtual ~IFunctionArgumentConverter() = default; }; template <typename ExpectedValueType, typename ProvidedValueType> @@ -105,7 +108,7 @@ class FunctionProcessor : public INodeProcessor m_argument_converters[i]->convert(context_exec_policy, std::move(argument_values[i])); } } else { - m_argument_converters[0]->convert(context_exec_policy, std::move(m_argument_node.execute(context_exec_policy))); + m_argument_converters[0]->convert(context_exec_policy, m_argument_node.execute(context_exec_policy)); } if (m_function_expression_processors.size() == 1) {