# HG changeset patch # User deba # Date 1157372823 0 # Node ID 8057a4245685cb34705a45622a5cc5f10304b008 # Parent d6e4efb477d8fbb7f0db016bf91924f7cb82d57b Bug fix in SmartEdgeSet + validity check function diff -r d6e4efb477d8 -r 8057a4245685 lemon/edge_set.h --- a/lemon/edge_set.h Mon Sep 04 12:15:20 2006 +0000 +++ b/lemon/edge_set.h Mon Sep 04 12:27:03 2006 +0000 @@ -584,15 +584,6 @@ typedef _Graph Graph; - class UnsupportedOperation : public LogicError { - public: - virtual const char* what() const throw() { - return "lemon::SmartEdgeSet::UnsupportedOperation"; - } - }; - - - protected: typedef typename Parent::NodesImplBase NodesImplBase; @@ -618,6 +609,10 @@ virtual ~NodesImpl() {} + bool attached() const { + return Parent::attached(); + } + protected: virtual void erase(const Node& node) { @@ -626,6 +621,7 @@ Parent::erase(node); } catch (const typename NodesImplBase::Notifier::ImmediateDetach&) { Parent::clear(); + throw; } } virtual void erase(const std::vector& nodes) { @@ -636,6 +632,7 @@ Parent::erase(nodes); } catch (const typename NodesImplBase::Notifier::ImmediateDetach&) { Parent::clear(); + throw; } } virtual void clear() { @@ -657,6 +654,10 @@ SmartEdgeSet(const Graph& graph) : nodes(graph, *this) { Parent::initalize(graph, nodes); } + + bool valid() const { + return nodes.attached(); + } }; @@ -712,6 +713,10 @@ : Parent(graph), _edgeset(edgeset) {} virtual ~NodesImpl() {} + + bool attached() const { + return Parent::attached(); + } protected: @@ -754,6 +759,10 @@ SmartUEdgeSet(const Graph& graph) : nodes(graph, *this) { Parent::initalize(graph, nodes); } + + bool valid() const { + return nodes.attached(); + } };