#pragma once #include "node.h" #include #include #include #include namespace FlowGraph { class Graph: public std::deque> { public: Graph(); Graph(const std::deque>& nodes); Graph(const Graph& other) = default; ~Graph(); Graph& operator= (const Graph&) = default; // returns the outermost scope inside this graph std::shared_ptr scope() const; // append other graph by joining the respective outermost scopes void append(const Graph& other); void append(std::shared_ptr node); std::shared_ptr lastOp() const; }; }