From 8e761289a2446367267c6c0d9a26e734f0f78306 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 16 Dec 2020 20:29:05 +0300 Subject: Get rid of legacy build systems and rename cutl/ to libcutl/ --- cutl/container/graph.hxx | 214 ----------------------------------------------- 1 file changed, 214 deletions(-) delete mode 100644 cutl/container/graph.hxx (limited to 'cutl/container/graph.hxx') diff --git a/cutl/container/graph.hxx b/cutl/container/graph.hxx deleted file mode 100644 index 07ed4f1..0000000 --- a/cutl/container/graph.hxx +++ /dev/null @@ -1,214 +0,0 @@ -// file : cutl/container/graph.hxx -// license : MIT; see accompanying LICENSE file - -#ifndef CUTL_CONTAINER_GRAPH_HXX -#define CUTL_CONTAINER_GRAPH_HXX - -#include - -#include -#include - -namespace cutl -{ - namespace container - { - struct no_edge: exception {}; - struct no_node: exception {}; - - template - class graph - { - public: - typedef N node_base; - typedef E edge_base; - - public: - template - T& - new_node (); - - template - T& - new_node (A0 const&); - - template - T& - new_node (A0 const&, A1 const&); - - template - T& - new_node (A0 const&, A1 const&, A2 const&); - - template - T& - new_node (A0 const&, A1 const&, A2 const&, A3 const&); - - template - T& - new_node (A0 const&, A1 const&, A2 const&, A3 const&, A4 const&); - - template - T& - new_node (A0 const&, A1 const&, A2 const&, A3 const&, A4 const&, - A5 const&); - - template - T& - new_node (A0 const&, A1 const&, A2 const&, A3 const&, A4 const&, - A5 const&, A6 const&); - - template - T& - new_node (A0 const&, A1 const&, A2 const&, A3 const&, A4 const&, - A5 const&, A6 const&, A7 const&); - - template - T& - new_node (A0 const&, A1 const&, A2 const&, A3 const&, A4 const&, - A5 const&, A6 const&, A7 const&, A8 const&); - - template - T& - new_node (A0 const&, A1 const&, A2 const&, A3 const&, A4 const&, - A5 const&, A6 const&, A7 const&, A8 const&, A9 const&); - - // Non-const versions. - // - template - T& - new_node (A0&); - - template - T& - new_node (A0&, A1&); - - template - T& - new_node (A0&, A1&, A2&); - - public: - template - T& - new_edge (L&, R&); - - template - T& - new_edge (L&, R&, A0 const&); - - template - T& - new_edge (L&, R&, A0 const&, A1 const&); - - template - T& - new_edge (L&, R&, A0 const&, A1 const&, A2 const&); - - template - T& - new_edge (L&, R&, A0 const&, A1 const&, A2 const&, A3 const&); - - template - T& - new_edge (L&, R&, A0 const&, A1 const&, A2 const&, A3 const&, - A4 const&); - - template - T& - new_edge (L&, R&, A0 const&, A1 const&, A2 const&, A3 const&, - A4 const&, A5 const&); - - // Functions to reset edge's nodes. - // - public: - template - void - reset_left_node (TE& edge, TN& node) - { - edge.set_left_node (node); - } - - template - void - reset_right_node (TE& edge, TN& node) - { - edge.set_right_node (node); - } - - // Functions to add edges to a node. - // - public: - template - void - add_edge_left (TN& node, TE& edge) - { - node.add_edge_left (edge); - } - - template - void - add_edge_right (TN& node, TE& edge) - { - node.add_edge_right (edge); - } - - // Functions to delete edges and nodes. In order to delete a - // a node without leaving any dangling edges you need to make - // sure that each edge pointing to it is either deleted or reset - // to some other node. - // - public: - template - void - delete_edge (L& left_node, R& right_node, T& edge); - - void - delete_node (node_base& node) - { - if (nodes_.erase (&node) == 0) - throw no_node (); - } - - public: - graph () {} - - private: - graph (graph const&); - - graph& - operator= (graph const&); - - protected: - typedef shared_ptr node_ptr; - typedef shared_ptr edge_ptr; - - typedef std::map nodes; - typedef std::map edges; - - nodes nodes_; - edges edges_; - }; - } -} - -#include - -#endif // CUTL_CONTAINER_GRAPH_HXX -- cgit v1.1