COIN-OR::LEMON - Graph Library

source: lemon-0.x/lemon/invalid.h @ 1836:1fee7c6b5129

Last change on this file since 1836:1fee7c6b5129 was 1836:1fee7c6b5129, checked in by Alpar Juttner, 15 years ago

Clarify INVALID implementation.

File size: 1.3 KB
RevLine 
[906]1/* -*- C++ -*-
[1435]2 * lemon/invalid.h - Part of LEMON, a generic C++ optimization library
[906]3 *
[1164]4 * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
[1359]5 * (Egervary Research Group on Combinatorial Optimization, EGRES).
[906]6 *
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.
10 *
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
13 * purpose.
14 *
15 */
[162]16
[921]17#ifndef LEMON_INVALID_H
18#define LEMON_INVALID_H
[162]19
[242]20///\file
21///\brief Definition of INVALID.
22
[921]23namespace lemon {
[162]24
25  /// Dummy type to make it easier to make invalid iterators.
26 
27  /// See \ref INVALID, how to use it.
28 
[412]29  struct Invalid {
30  public:
31    bool operator==(Invalid) { return true;  }
32    bool operator!=(Invalid) { return false; }
33    bool operator< (Invalid) { return false; }
34  };
[162]35 
36  /// Invalid iterators.
37 
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.
[184]40
[1836]41  //const Invalid &INVALID = *(Invalid *)0;
[184]42
[1836]43#ifdef LEMON_ONLY_TEMPLATES
[169]44  const Invalid INVALID = Invalid();
[1836]45#else
46  extern const Invalid INVALID;
47#endif
[162]48
[921]49} //namespace lemon
[162]50
51#endif
52 
Note: See TracBrowser for help on using the repository browser.