From 8286ac511144e4f17d34eac9affb97e50646344a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 23 Jul 2014 15:25:44 +0200 Subject: Imported Upstream version 4.0.0 --- libcult/cult/containers/any.hxx | 192 --------------------- libcult/cult/containers/any.txx | 11 -- libcult/cult/containers/deque.hxx | 166 ------------------- libcult/cult/containers/graph.hxx | 193 --------------------- libcult/cult/containers/graph.txx | 313 ----------------------------------- libcult/cult/containers/iterator.hxx | 227 ------------------------- libcult/cult/containers/list.hxx | 193 --------------------- libcult/cult/containers/map.hxx | 175 -------------------- libcult/cult/containers/pair.hxx | 58 ------- libcult/cult/containers/set.hxx | 175 -------------------- libcult/cult/containers/stack.hxx | 95 ----------- libcult/cult/containers/vector.hxx | 164 ------------------ 12 files changed, 1962 deletions(-) delete mode 100644 libcult/cult/containers/any.hxx delete mode 100644 libcult/cult/containers/any.txx delete mode 100644 libcult/cult/containers/deque.hxx delete mode 100644 libcult/cult/containers/graph.hxx delete mode 100644 libcult/cult/containers/graph.txx delete mode 100644 libcult/cult/containers/iterator.hxx delete mode 100644 libcult/cult/containers/list.hxx delete mode 100644 libcult/cult/containers/map.hxx delete mode 100644 libcult/cult/containers/pair.hxx delete mode 100644 libcult/cult/containers/set.hxx delete mode 100644 libcult/cult/containers/stack.hxx delete mode 100644 libcult/cult/containers/vector.hxx (limited to 'libcult/cult/containers') diff --git a/libcult/cult/containers/any.hxx b/libcult/cult/containers/any.hxx deleted file mode 100644 index 10f771f..0000000 --- a/libcult/cult/containers/any.hxx +++ /dev/null @@ -1,192 +0,0 @@ -// file : cult/containers/any.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_ANY_HXX -#define CULT_CONTAINERS_ANY_HXX - -#include - -#include - -namespace Cult -{ - namespace Containers - { - //@@ eager clonning: do I need it? - // - // - class Any - { - public: - struct Typing {}; - - public: - template - Any (X const& x) - : holder_ (new HolderTemplate (x)) - { - } - - Any (Any const& any) - : holder_ (any.holder_->clone ()) - { - } - - public: - template - Any& - operator= (X const& x) - { - holder_ = Evptr (new HolderTemplate (x)); - return *this; - } - - Any& - operator= (Any const& any) - { - holder_ = any.holder_->clone (); - return *this; - } - - public: - /* - template - operator X& () - { - return value (); - } - - template - operator X const& () const - { - return value (); - } - */ - - public: - template - X& - value () - { - //@@ too strict - // - if (holder_->type_id () == typeid (X)) - { - return dynamic_cast*>(holder_.get ())->value (); - } - else - { - throw Typing (); - } - } - - template - X const& - value () const - { - if (holder_->type_id () == typeid (X)) - { - return dynamic_cast*>(holder_.get ())->value (); - } - else - { - throw Typing (); - } - } - - public: - RTTI::TypeId - type_id () const - { - return holder_->type_id (); - } - - public: - /* - template - friend x - operator+ (any const& a, x const& b) - { - return a.value () + b; - } - - template - friend x - operator+ (x const& a, any const& b) - { - return a + b.value (); - } - */ - - private: - class Holder - { - public: - virtual - ~Holder () - { - } - - Evptr - clone () const - { - return clone_ (); - } - - virtual RTTI::TypeId - type_id () const = 0; - - protected: - virtual Evptr - clone_ () const = 0; - }; - - template - class HolderTemplate : public Holder - { - public: - HolderTemplate (X const& value) - : value_ (value) - { - } - - virtual RTTI::TypeId - type_id () const - { - return RTTI::TypeId (typeid (value_)); - } - - X const& - value () const - { - return value_; - } - - X& - value () - { - return value_; - } - - protected: - virtual Evptr - clone_ () const - { - return new HolderTemplate (value_); - } - - private: - X value_; - }; - - private: - Evptr holder_; - }; - } -} - -#include - -#endif // CULT_CONTAINERS_ANY_HXX diff --git a/libcult/cult/containers/any.txx b/libcult/cult/containers/any.txx deleted file mode 100644 index 8e97345..0000000 --- a/libcult/cult/containers/any.txx +++ /dev/null @@ -1,11 +0,0 @@ -// file : cult/containers/any.txx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -namespace Cult -{ - namespace Containers - { - } -} diff --git a/libcult/cult/containers/deque.hxx b/libcult/cult/containers/deque.hxx deleted file mode 100644 index ed17a0c..0000000 --- a/libcult/cult/containers/deque.hxx +++ /dev/null @@ -1,166 +0,0 @@ -// file : cult/containers/deque.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_DEQUE_HXX -#define CULT_CONTAINERS_DEQUE_HXX - -#include - -#include - -#include - -namespace Cult -{ - namespace Containers - { - template - class Deque: public std::deque - { - typedef std::deque Base; - - Base& - base () - { - return *this; - } - - Base const& - base () const - { - return *this; - } - - public: - typedef typename Base::value_type Value; - - - typedef typename Base::reference Reference; - typedef typename Base::const_reference ConstReference; - - - typedef typename Base::pointer Pointer; - typedef typename Base::const_pointer ConstPointer; - - - typedef - IteratorAdapter - Iterator; - - typedef - IteratorAdapter - ConstIterator; - - - typedef - IteratorAdapter - ReverseIterator; - - typedef - IteratorAdapter - ConstReverseIterator; - - - // Use Cult::Size and Cult::PtrDifference. - // - // typedef Base::size_type; - // typedef Base::difference_type; - - public: - explicit - Deque () - : Base () - { - } - - explicit - Deque (Size size, Value const& value = Value ()) - : Base (size, value) - { - } - - template - Deque (InputIterator first, InputIterator last) - : Base (first, last) - { - } - - Deque (Deque const& other) - : Base (other) - { - } - - Deque& - operator= (Deque const& other) - { - base () = other; - return *this; - } - - public: - Iterator - begin () - { - return Iterator (base ().begin ()); - } - - Iterator - end () - { - return Iterator (base ().end ()); - } - - - ConstIterator - begin () const - { - return ConstIterator (base ().begin ()); - } - - ConstIterator - end () const - { - return ConstIterator (base ().end ()); - } - - // - // - - ReverseIterator - rbegin () - { - return ReverseIterator (base ().rbegin ()); - } - - ReverseIterator - rend () - { - return ReverseIterator (base ().rend ()); - } - - - ConstReverseIterator - rbegin () const - { - return ConstReverseIterator (base ().rbegin ()); - } - - ConstReverseIterator - rend () const - { - return ConstReverseIterator (base ().rend ()); - } - - public: - Void - swap (Deque& other) - { - base ().swap (other); - } - }; - } -} - -#endif // CULT_CONTAINERS_DEQUE_HXX diff --git a/libcult/cult/containers/graph.hxx b/libcult/cult/containers/graph.hxx deleted file mode 100644 index d61cd53..0000000 --- a/libcult/cult/containers/graph.hxx +++ /dev/null @@ -1,193 +0,0 @@ -// file : cult/containers/graph.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_GRAPH_HXX -#define CULT_CONTAINERS_GRAPH_HXX - -#include -#include -#include - -namespace Cult -{ - namespace Containers - { - template - class Graph - { - public: - typedef N Node; - typedef E Edge; - - struct NoEdge: virtual EH::Exception {}; - struct NoNode: virtual EH::Exception {}; - - 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&); - - public: - template - T& - new_edge (Left&, Right&); - - template - T& - new_edge (Left&, Right&, A0 const&); - - template - T& - new_edge (Left&, Right&, A0 const&, A1 const&); - - template - T& - new_edge (Left&, Right&, A0 const&, A1 const&, A2 const&); - - template - T& - new_edge (Left&, Right&, A0 const&, A1 const&, A2 const&, A3 const&); - - template - T& - new_edge (Left&, Right&, A0 const&, A1 const&, A2 const&, A3 const&, - A4 const&); - - template - T& - new_edge (Left&, Right&, 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 (Left& left_node, Right& right_node, T& edge); - - Void - delete_node (Node& node) - { - if (nodes_.erase (&node) == 0) - throw NoNode (); - } - - protected: - typedef Shptr NodePtr; - typedef Shptr EdgePtr; - - typedef Map Nodes; - typedef Map Edges; - - Nodes nodes_; - Edges edges_; - }; - } -} - - -#include - -#endif // CULT_CONTAINERS_GRAPH_HXX diff --git a/libcult/cult/containers/graph.txx b/libcult/cult/containers/graph.txx deleted file mode 100644 index a9c9979..0000000 --- a/libcult/cult/containers/graph.txx +++ /dev/null @@ -1,313 +0,0 @@ -// file : cult/containers/graph.txx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -namespace Cult -{ - namespace Containers - { - - // Nodes. - // - - template - template - T& Graph:: - new_node () - { - Shptr node (new T); - nodes_[node.get ()] = node; - - return *node; - } - - - template - template - T& Graph:: - new_node (A0 const& a0) - { - Shptr node (new T (a0)); - nodes_[node.get ()] = node; - - return *node; - } - - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1) - { - Shptr node (new T (a0, a1)); - nodes_[node.get ()] = node; - - return *node; - } - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1, A2 const& a2) - { - Shptr node (new T (a0, a1, a2)); - nodes_[node.get ()] = node; - - return *node; - } - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3) - { - Shptr node (new T (a0, a1, a2, a3)); - nodes_[node.get ()] = node; - - return *node; - } - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, - A4 const& a4) - { - Shptr node (new T (a0, a1, a2, a3, a4)); - nodes_[node.get ()] = node; - - return *node; - } - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, - A4 const& a4, A5 const& a5) - { - Shptr node (new T (a0, a1, a2, a3, a4, a5)); - nodes_[node.get ()] = node; - - return *node; - } - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, - A4 const& a4, A5 const& a5, A6 const& a6) - { - Shptr node (new T (a0, a1, a2, a3, a4, a5, a6)); - nodes_[node.get ()] = node; - - return *node; - } - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, - A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7) - { - Shptr node (new T (a0, a1, a2, a3, a4, a5, a6, a7)); - nodes_[node.get ()] = node; - - return *node; - } - - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, - A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, - A8 const& a8) - { - Shptr node (new T (a0, a1, a2, a3, a4, a5, a6, a7, a8)); - nodes_[node.get ()] = node; - - return *node; - } - - - template - template - T& Graph:: - new_node (A0 const& a0, A1 const& a1, A2 const& a2, A3 const& a3, - A4 const& a4, A5 const& a5, A6 const& a6, A7 const& a7, - A8 const& a8, A9 const& a9) - { - Shptr node (new T (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); - nodes_[node.get ()] = node; - - return *node; - } - - - // Edges. - // - - template - template - T& Graph:: - new_edge (Left& l, Right& r) - { - Shptr edge (new T); - edges_[edge.get ()] = edge; - - edge->set_left_node (l); - edge->set_right_node (r); - - l.add_edge_left (*edge); - r.add_edge_right (*edge); - - return *edge; - } - - template - template - T& Graph:: - new_edge (Left& l, Right& r, A0 const& a0) - { - Shptr edge (new T (a0)); - edges_[edge.get ()] = edge; - - edge->set_left_node (l); - edge->set_right_node (r); - - l.add_edge_left (*edge); - r.add_edge_right (*edge); - - return *edge; - } - - template - template - T& Graph:: - new_edge (Left& l, Right& r, A0 const& a0, A1 const& a1) - { - Shptr edge (new T (a0, a1)); - edges_[edge.get ()] = edge; - - edge->set_left_node (l); - edge->set_right_node (r); - - l.add_edge_left (*edge); - r.add_edge_right (*edge); - - return *edge; - } - - template - template - T& Graph:: - new_edge (Left& l, Right& r, A0 const& a0, A1 const& a1, A2 const& a2) - { - Shptr edge (new T (a0, a1, a2)); - edges_[edge.get ()] = edge; - - edge->set_left_node (l); - edge->set_right_node (r); - - l.add_edge_left (*edge); - r.add_edge_right (*edge); - - return *edge; - } - - template - template - T& Graph:: - new_edge (Left& l, Right& r, A0 const& a0, A1 const& a1, A2 const& a2, - A3 const& a3) - { - Shptr edge (new T (a0, a1, a2, a3)); - edges_[edge.get ()] = edge; - - edge->set_left_node (l); - edge->set_right_node (r); - - l.add_edge_left (*edge); - r.add_edge_right (*edge); - - return *edge; - } - - template - template - T& Graph:: - new_edge (Left& l, Right& r, A0 const& a0, A1 const& a1, A2 const& a2, - A3 const& a3, A4 const& a4) - { - Shptr edge (new T (a0, a1, a2, a3, a4)); - edges_[edge.get ()] = edge; - - edge->set_left_node (l); - edge->set_right_node (r); - - l.add_edge_left (*edge); - r.add_edge_right (*edge); - - return *edge; - } - - template - template - T& Graph:: - new_edge (Left& l, Right& r, A0 const& a0, A1 const& a1, A2 const& a2, - A3 const& a3, A4 const& a4, A5 const& a5) - { - Shptr edge (new T (a0, a1, a2, a3, a4, a5)); - edges_[edge.get ()] = edge; - - edge->set_left_node (l); - edge->set_right_node (r); - - l.add_edge_left (*edge); - r.add_edge_right (*edge); - - return *edge; - } - - - template - template - Void Graph:: - delete_edge (Left& l, Right& r, T& edge) - { - typename Edges::Iterator i (edges_.find (&edge)); - - if (i == edges_.end () || - nodes_.find (&l) == nodes_.end () || - nodes_.find (&r) == nodes_.end ()) - throw NoEdge (); - - r.remove_edge_right (edge); - l.remove_edge_left (edge); - - edge.clear_right_node (r); - edge.clear_left_node (l); - - edges_.erase (i); - } - } -} diff --git a/libcult/cult/containers/iterator.hxx b/libcult/cult/containers/iterator.hxx deleted file mode 100644 index 132043b..0000000 --- a/libcult/cult/containers/iterator.hxx +++ /dev/null @@ -1,227 +0,0 @@ -// file : cult/containers/iterator.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_ITERATOR_HXX -#define CULT_CONTAINERS_ITERATOR_HXX - -#include - -#include - -namespace Cult -{ - namespace Containers - { - template - class IteratorAdapter - { - public: - typedef typename std::iterator_traits::value_type Value; - typedef typename std::iterator_traits::difference_type Difference; - typedef typename std::iterator_traits::pointer Pointer; - typedef typename std::iterator_traits::reference Reference; - typedef typename std::iterator_traits::iterator_category Category; - - // For compatibility with std::iterator_traits - // - public: - typedef Value value_type; - typedef Reference reference; - typedef Pointer pointer; - typedef Category iterator_category; - typedef Difference difference_type; - - public: - IteratorAdapter () - : i_ () // i_ can be of a pointer type. - { - } - - explicit - IteratorAdapter (I const& i) - : i_ (i) - { - } - - template - IteratorAdapter (IteratorAdapter const& j) - : i_ (j.i_) - { - } - public: - // Forward iterator requirements. - // - Reference - operator* () const - { - return *i_; - } - - Pointer - operator-> () const - { - return &(*i_); - } - - IteratorAdapter& - operator++ () - { - ++i_; - return *this; - } - - IteratorAdapter - operator++ (Int) - { - return IteratorAdapter (i_++); - } - - public: - // Bidirectional iterator requirements. - // - IteratorAdapter& - operator-- () - { - --i_; - return *this; - } - - IteratorAdapter - operator-- (Int) - { - return IteratorAdapter (i_--); - } - - public: - // Random access iterator requirements. - // - Reference - operator[] (Difference n) const - { - return i_[n]; - } - - IteratorAdapter - operator+ (Difference n) const - { - return IteratorAdapter (i_ + n); - } - - IteratorAdapter& - operator+= (Difference n) - { - i_ += n; - return *this; - } - - IteratorAdapter - operator- (Difference n) const - { - return IteratorAdapter (i_ - n); - } - - IteratorAdapter& - operator-= (Difference n) - { - i_ += n; - return *this; - } - - public: - I const& - base () const - { - return i_; - } - - // @@ This is needed so that call to functions such as erase() - // be possible without writing a wrapper. This should be a temporary - // measure. - - operator I& () - { - return i_; - } - - operator I const& () const - { - return i_; - } - - private: - template - friend class IteratorAdapter; - - I i_; - }; - - // Note: We use different types for left- and right-hand-side - // arguments to allow comparison between iterator and const_iterator. - // - - // Forward iterator requirements. - // - template - inline Boolean - operator== (IteratorAdapter const& i, IteratorAdapter const& j) - { - return i.base () == j.base (); - } - - template - inline Boolean - operator!= (IteratorAdapter const& i, IteratorAdapter const& j) - { - return i.base () != j.base (); - } - - // Random access iterator requirements - // - template - inline Boolean - operator< (IteratorAdapter const& i, IteratorAdapter const& j) - { - return i.base() < j.base(); - } - - template - inline Boolean - operator> (IteratorAdapter const& i, IteratorAdapter const& j) - { - return i.base() > j.base(); - } - - template - inline Boolean - operator<= (IteratorAdapter const& i, IteratorAdapter const& j) - { - return i.base() <= j.base(); - } - - template - inline Boolean - operator>= (IteratorAdapter const& i, IteratorAdapter const& j) - { - return i.base() >= j.base(); - } - - template - inline typename IteratorAdapter::Difference - operator- (IteratorAdapter const& i, IteratorAdapter const& j) - { - return i.base () - j.base (); - } - - template - IteratorAdapter - operator+ (typename IteratorAdapter::Difference n, - IteratorAdapter const& x) - { - return x + n; - } - } -} - -#endif // CULT_CONTAINERS_ITERATOR_HXX diff --git a/libcult/cult/containers/list.hxx b/libcult/cult/containers/list.hxx deleted file mode 100644 index 161052e..0000000 --- a/libcult/cult/containers/list.hxx +++ /dev/null @@ -1,193 +0,0 @@ -// file : cult/containers/list.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_LIST_HXX -#define CULT_CONTAINERS_LIST_HXX - -#include - -#include - -#include - -namespace Cult -{ - namespace Containers - { - template - class List: public std::list - { - typedef std::list Base; - - Base& - base () - { - return *this; - } - - Base const& - base () const - { - return *this; - } - - public: - typedef typename Base::value_type Value; - - typedef typename Base::reference Reference; - typedef typename Base::const_reference ConstReference; - - typedef typename Base::pointer Pointer; - typedef typename Base::const_pointer ConstPointer; - - - typedef - IteratorAdapter - Iterator; - - typedef - IteratorAdapter - ConstIterator; - - - typedef - IteratorAdapter - ReverseIterator; - - typedef - IteratorAdapter - ConstReverseIterator; - - - // Use Cult::Size and Cult::PtrDifference. - // - // typedef Base::size_type; - // typedef Base::difference_type; - - public: - explicit - List () - : Base () - { - } - - explicit - List (Size size, Value const& value = Value ()) - : Base (size, value) - { - } - - template - List (InputIterator first, InputIterator last) - : Base (first, last) - { - } - - List (List const& other) - : Base (other) - { - } - - List& - operator= (List const& other) - { - base () = other; - return *this; - } - - public: - Void - swap (List& other) - { - base ().swap (other); - } - - public: - Iterator - begin () - { - return Iterator (base ().begin ()); - } - - Iterator - end () - { - return Iterator (base ().end ()); - } - - - ConstIterator - begin () const - { - return ConstIterator (base ().begin ()); - } - - ConstIterator - end () const - { - return ConstIterator (base ().end ()); - } - - // - // - - ReverseIterator - rbegin () - { - return ReverseIterator (base ().rbegin ()); - } - - ReverseIterator - rend () - { - return ReverseIterator (base ().rend ()); - } - - - ConstReverseIterator - rbegin () const - { - return ConstReverseIterator (base ().rbegin ()); - } - - ConstReverseIterator - rend () const - { - return ConstReverseIterator (base ().rend ()); - } - - public: - Iterator - insert (Iterator const& p, Value const& x) - { - return Iterator (base ().insert (p.base (), x)); - } - - template - Void - insert (Iterator const& p, I const& first, I const& last) - { - base ().insert (p.base (), first, last); - } - - template - Void - insert (Iterator const& p, - IteratorAdapter const& first, - IteratorAdapter const& last) - { - base ().insert (p.base (), first.base (), last.base ()); - } - - Iterator - erase (Iterator const& i) - { - return Iterator (base ().erase (i.base ())); - } - }; - } -} - -#endif // CULT_CONTAINERS_LIST_HXX diff --git a/libcult/cult/containers/map.hxx b/libcult/cult/containers/map.hxx deleted file mode 100644 index 8a3fbdb..0000000 --- a/libcult/cult/containers/map.hxx +++ /dev/null @@ -1,175 +0,0 @@ -// file : cult/containers/map.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_MAP_HXX -#define CULT_CONTAINERS_MAP_HXX - -#include - -#include - -#include - -namespace Cult -{ - namespace Containers - { - template > - class Map: public std::map - { - typedef std::map Base; - - Base& - base () - { - return *this; - } - - Base const& - base () const - { - return *this; - } - - public: - typedef typename Base::key_type Key; - typedef typename Base::mapped_type Value; - typedef typename Base::value_type Pair; - typedef typename Base::key_compare Compare; - - typedef typename Base::reference Reference; - typedef typename Base::const_reference ConstReference; - - typedef typename Base::pointer Pointer; - typedef typename Base::const_pointer ConstPointer; - - - typedef - IteratorAdapter - Iterator; - - typedef - IteratorAdapter - ConstIterator; - - - typedef - IteratorAdapter - ReverseIterator; - - typedef - IteratorAdapter - ConstReverseIterator; - - // Use Cult::Size and Cult::PtrDifference. - // - // typedef Base::size_type; - // typedef Base::difference_type; - - public: - explicit - Map (Compare const& comp = Compare ()) - : Base (comp) - { - } - - template - Map (InputIterator first, - InputIterator last, - Compare const& comp = Compare ()) - : Base (first, last, comp) - { - } - - Map (Map const& other) - : Base (other) - { - } - - Map& - operator= (Map const& other) - { - base () = other; - return *this; - } - - public: - Iterator - begin () - { - return Iterator (base ().begin ()); - } - - Iterator - end () - { - return Iterator (base ().end ()); - } - - - ConstIterator - begin () const - { - return ConstIterator (base ().begin ()); - } - - ConstIterator - end () const - { - return ConstIterator (base ().end ()); - } - - // - // - - ReverseIterator - rbegin () - { - return ReverseIterator (base ().rbegin ()); - } - - ReverseIterator - rend () - { - return ReverseIterator (base ().rend ()); - } - - - ConstReverseIterator - rbegin () const - { - return ConstReverseIterator (base ().rbegin ()); - } - - ConstReverseIterator - rend () const - { - return ConstReverseIterator (base ().rend ()); - } - - public: - Iterator - find (Key const& k) - { - return Iterator (base ().find (k)); - } - - ConstIterator - find (Key const& k) const - { - return ConstIterator (base ().find (k)); - } - - public: - Void - swap (Map& other) - { - base ().swap (other); - } - }; - } -} - -#endif // CULT_CONTAINERS_MAP_HXX diff --git a/libcult/cult/containers/pair.hxx b/libcult/cult/containers/pair.hxx deleted file mode 100644 index b8b7506..0000000 --- a/libcult/cult/containers/pair.hxx +++ /dev/null @@ -1,58 +0,0 @@ -// file : cult/containers/pair.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_PAIR_HXX -#define CULT_CONTAINERS_PAIR_HXX - -#include - -namespace Cult -{ - namespace Containers - { - template - class Pair: public std::pair - { - typedef std::pair Base; - - Base& - base () - { - return *this; - } - - public: - typedef T1 First; - typedef T2 Second; - - public: - Pair () - : Base () - { - } - - Pair (First const& first, Second const& second) - : Base (first, second) - { - } - - template - Pair (std::pair const& pair) - : Base (pair) - { - } - - template - Pair& - operator= (std::pair const& pair) - { - base () = pair; - return *this; - } - }; - } -} - -#endif // CULT_CONTAINERS_PAIR_HXX diff --git a/libcult/cult/containers/set.hxx b/libcult/cult/containers/set.hxx deleted file mode 100644 index a911c19..0000000 --- a/libcult/cult/containers/set.hxx +++ /dev/null @@ -1,175 +0,0 @@ -// file : cult/containers/set.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_SET_HXX -#define CULT_CONTAINERS_SET_HXX - -#include - -#include - -#include - -namespace Cult -{ - namespace Containers - { - template > - class Set: public std::set - { - typedef std::set Base; - - Base& - base () - { - return *this; - } - - Base const& - base () const - { - return *this; - } - - public: - typedef typename Base::key_type Key; - typedef typename Base::value_type Value; // Same as Key. - typedef typename Base::key_compare Compare; - - typedef typename Base::reference Reference; - typedef typename Base::const_reference ConstReference; - - typedef typename Base::pointer Pointer; - typedef typename Base::const_pointer ConstPointer; - - - typedef - IteratorAdapter - Iterator; - - typedef - IteratorAdapter - ConstIterator; - - - typedef - IteratorAdapter - ReverseIterator; - - typedef - IteratorAdapter - ConstReverseIterator; - - - // Use Cult::Size and Cult::PtrDifference. - // - // typedef Base::size_type; - // typedef Base::difference_type; - - public: - explicit - Set (Compare const& comp = Compare ()) - : Base (comp) - { - } - - template - Set (InputIterator first, - InputIterator last, - Compare const& comp = Compare ()) - : Base (first, last, comp) - { - } - - Set (Set const& other) - : Base (other) - { - } - - Set& - operator= (Set const& other) - { - base () = other; - return *this; - } - - public: - Iterator - begin () - { - return Iterator (base ().begin ()); - } - - Iterator - end () - { - return Iterator (base ().end ()); - } - - - ConstIterator - begin () const - { - return ConstIterator (base ().begin ()); - } - - ConstIterator - end () const - { - return ConstIterator (base ().end ()); - } - - // - // - - ReverseIterator - rbegin () - { - return ReverseIterator (base ().rbegin ()); - } - - ReverseIterator - rend () - { - return ReverseIterator (base ().rend ()); - } - - - ConstReverseIterator - rbegin () const - { - return ConstReverseIterator (base ().rbegin ()); - } - - ConstReverseIterator - rend () const - { - return ConstReverseIterator (base ().rend ()); - } - - public: - Iterator - find (Key const& k) - { - return Iterator (base ().find (k)); - } - - ConstIterator - find (Key const& k) const - { - return ConstIterator (base ().find (k)); - } - - public: - Void - swap (Set& other) - { - base ().swap (other); - } - }; - } -} - -#endif // CULT_CONTAINERS_SET_HXX diff --git a/libcult/cult/containers/stack.hxx b/libcult/cult/containers/stack.hxx deleted file mode 100644 index 930bfe8..0000000 --- a/libcult/cult/containers/stack.hxx +++ /dev/null @@ -1,95 +0,0 @@ -// file : cult/containers/stack.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_STACK_HXX -#define CULT_CONTAINERS_STACK_HXX - -#include - -#include - -namespace Cult -{ - namespace Containers - { - template > - class Stack - { - public: - typedef C Container; - typedef typename Container::Value Value; - - - public: - explicit - Stack (Container const& c = Container()) - : c_ (c) - { - } - - Boolean - empty () const - { - return c_.empty(); - } - - Size - size () const - { - return c_.size(); - } - - Value& - top () - { - return c_.back(); - } - - Value const& - top () const - { - return c_.back(); - } - - Void - push (const Value& x) - { - c_.push_back(x); - } - - Void - pop() - { - c_.pop_back(); - } - - protected: - Container c_; - }; - - /* - template - bool operator==(const stack& x, - const stack& y); - template - bool operator< (const stack& x, - const stack& y); - template - bool operator!=(const stack& x, - const stack& y); - template - bool operator> (const stack& x, - const stack& y); - template - bool operator>=(const stack& x, - const stack& y); - template - bool operator<=(const stack& x, - const stack& y); - */ - } -} - -#endif // CULT_CONTAINERS_STACK_HXX diff --git a/libcult/cult/containers/vector.hxx b/libcult/cult/containers/vector.hxx deleted file mode 100644 index 3a3b32f..0000000 --- a/libcult/cult/containers/vector.hxx +++ /dev/null @@ -1,164 +0,0 @@ -// file : cult/containers/vector.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_CONTAINERS_VECTOR_HXX -#define CULT_CONTAINERS_VECTOR_HXX - -#include - -#include - -#include - -namespace Cult -{ - namespace Containers - { - template - class Vector: public std::vector - { - typedef std::vector Base; - - Base& - base () - { - return *this; - } - - Base const& - base () const - { - return *this; - } - - public: - typedef typename Base::value_type Value; - - typedef typename Base::reference Reference; - typedef typename Base::const_reference ConstReference; - - typedef typename Base::pointer Pointer; - typedef typename Base::const_pointer ConstPointer; - - - typedef - IteratorAdapter - Iterator; - - typedef - IteratorAdapter - ConstIterator; - - - typedef - IteratorAdapter - ReverseIterator; - - typedef - IteratorAdapter - ConstReverseIterator; - - - // Use Cult::Size and Cult::PtrDifference. - // - // typedef Base::size_type; - // typedef Base::difference_type; - - public: - explicit - Vector () - : Base () - { - } - - explicit - Vector (Size size, Value const& value = Value ()) - : Base (size, value) - { - } - - template - Vector (InputIterator first, InputIterator last) - : Base (first, last) - { - } - - Vector (Vector const& other) - : Base (other) - { - } - - Vector& - operator= (Vector const& other) - { - base () = other; - return *this; - } - - public: - Iterator - begin () - { - return Iterator (base ().begin ()); - } - - Iterator - end () - { - return Iterator (base ().end ()); - } - - - ConstIterator - begin () const - { - return ConstIterator (base ().begin ()); - } - - ConstIterator - end () const - { - return ConstIterator (base ().end ()); - } - - // - // - - ReverseIterator - rbegin () - { - return ReverseIterator (base ().rbegin ()); - } - - ReverseIterator - rend () - { - return ReverseIterator (base ().rend ()); - } - - - ConstReverseIterator - rbegin () const - { - return ConstReverseIterator (base ().rbegin ()); - } - - ConstReverseIterator - rend () const - { - return ConstReverseIterator (base ().rend ()); - } - - public: - Void - swap (Vector& other) - { - base ().swap (other); - } - }; - } -} - -#endif // CULT_CONTAINERS_VECTOR_HXX -- cgit v1.2.3