Half-done, but I want to continue from home.
2 * lemon/invalid.h - Part of LEMON, a generic C++ optimization library
4 * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
5 * (Egervary Research Group on Combinatorial Optimization, EGRES).
7 * Permission to use, modify and distribute this software is granted
8 * provided that this copyright notice appears in all copies. For
9 * precise terms see the accompanying LICENSE file.
11 * This software is provided "AS IS" with no warranty of any kind,
12 * express or implied, and with no claim as to its suitability for any
17 #ifndef LEMON_INVALID_H
18 #define LEMON_INVALID_H
21 ///\brief Definition of INVALID.
25 /// Dummy type to make it easier to make invalid iterators.
27 /// See \ref INVALID, how to use it.
31 bool operator==(Invalid) { return true; }
32 bool operator!=(Invalid) { return false; }
33 bool operator< (Invalid) { return false; }
36 /// Invalid iterators.
38 /// \ref Invalid is a global type that converts to each iterator
39 /// in such a way that the value of the target iterator will be invalid.
41 // It is also used to convert the \c INVALID constant to the
42 // node iterator that makes is possible to write
44 //extern Invalid INVALID;
46 //const Invalid &INVALID = *(Invalid *)0;
47 const Invalid INVALID = Invalid();