From a9d93e31925c8374c6e3a9bb14da7c0153d9edb9 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 18 Dec 2017 11:27:42 +0100 Subject: Fix recursive type issues with some toolchains --- src/server/Task.hpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/server/Task.hpp') diff --git a/src/server/Task.hpp b/src/server/Task.hpp index 203627a1..3bcfbb40 100644 --- a/src/server/Task.hpp +++ b/src/server/Task.hpp @@ -21,6 +21,7 @@ #include #include #include +#include #include namespace Ingen { @@ -77,14 +78,14 @@ public: bool empty() const { return _mode != Mode::SINGLE && _children.empty(); } /** Simplify task expression. */ - static Task simplify(Task task); + static std::unique_ptr simplify(std::unique_ptr&& task); /** Steal a child task from this task (succeeds for PARALLEL only). */ Task* steal(RunContext& context); /** Prepend a child to this task. */ void push_front(Task&& task) { - _children.emplace_front(std::move(task)); + _children.emplace_front(std::make_unique(std::move(task))); } Mode mode() const { return _mode; } @@ -94,14 +95,14 @@ public: void set_done(bool done) { _done = done; } private: - typedef std::deque Children; + typedef std::deque> Children; Task(const Task&) = delete; Task& operator=(const Task&) = delete; Task* get_task(RunContext& context); - void append(Task t) { + void append(std::unique_ptr&& t) { _children.emplace_back(std::move(t)); } -- cgit v1.2.1