#ifndef YERBACON_TASKING_HPP #define YERBACON_TASKING_HPP #include #include #include "parsing/ParseComponents.hpp" #define make_task_base(start, type, captures, function_body) make_pair(type_index(typeid(type)), [captures](const ParseTree& parsedTree, unsigned int& index) { start; function_body }) #define make_task_base_R(T, C, F) make_task_base(const T& parseComponent = reinterpret_cast(*parsedTree[index]), T, C, F) class Tasking { protected: typedef function task; typedef unordered_map unordered_task_map; public: virtual unordered_task_map getTaskMapInstance() = 0; virtual ~Tasking() = default; }; #endif //YERBACON_TASKING_HPP