3 * This file is a part of LEMON, a generic C++ optimization library
5 * Copyright (C) 2003-2008
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 * (Egervary Research Group on Combinatorial Optimization, EGRES).
9 * Permission to use, modify and distribute this software is granted
10 * provided that this copyright notice appears in all copies. For
11 * precise terms see the accompanying LICENSE file.
13 * This software is provided "AS IS" with no warranty of any kind,
14 * express or implied, and with no claim as to its suitability for any
19 #ifndef LEMON_BITS_INVALID_H
20 #define LEMON_BITS_INVALID_H
23 ///\brief Definition of INVALID.
27 /// \brief Dummy type to make it easier to create invalid iterators.
29 /// Dummy type to make it easier to create invalid iterators.
30 /// See \ref INVALID for the usage.
33 bool operator==(Invalid) { return true; }
34 bool operator!=(Invalid) { return false; }
35 bool operator< (Invalid) { return false; }
38 /// \brief Invalid iterators.
40 /// \ref Invalid is a global type that converts to each iterator
41 /// in such a way that the value of the target iterator will be invalid.
43 //Some people didn't like this:
44 //const Invalid &INVALID = *(Invalid *)0;
46 #ifdef LEMON_ONLY_TEMPLATES
47 const Invalid INVALID = Invalid();
49 extern const Invalid INVALID;