src/work/deba/invalid.h
author alpar
Fri, 23 Jul 2004 17:13:23 +0000
changeset 737 2d867176d10e
child 921 818510fa3d99
permissions -rw-r--r--
Several changes in Kruskal alg.
- Input object interface was changed to an STL compatible one.
- template parameters of class KruskalPairVec has been simplified.
- (the most of) the names meet the naming conventions.
- a lot of (but still not enough) documentation has been added.
- class KruskalMapVec has been commented out.
     1 // -*- mode:C++ -*-
     2 
     3 #ifndef HUGO_INVALID_H
     4 #define HUGO_INVALID_H
     5 
     6 ///\file
     7 ///\brief Definition of INVALID.
     8 
     9 namespace hugo {
    10 
    11   /// Dummy type to make it easier to make invalid iterators.
    12   
    13   /// See \ref INVALID, how to use it.
    14   
    15   struct Invalid {
    16   public:
    17     bool operator==(Invalid) { return true;  }
    18     bool operator!=(Invalid) { return false; }
    19     bool operator< (Invalid) { return false; }
    20   };
    21   
    22   /// Invalid iterators.
    23   
    24   /// \ref Invalid is a global type that converts to each iterator
    25   /// in such a way that the value of the target iterator will be invalid.
    26 
    27   // It is also used to convert the \c INVALID constant to the
    28   // node iterator that makes is possible to write 
    29 
    30   //extern Invalid INVALID;
    31 
    32   //const Invalid &INVALID = *(Invalid *)0;
    33   const Invalid INVALID = Invalid();
    34 
    35 } //namespace hugo
    36 
    37 #endif
    38