src/work/deba/invalid.h
changeset 606 81a0c2f2f7c6
equal deleted inserted replaced
-1:000000000000 0:fb087c64ea9e
       
     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   
       
    17   /// Invalid iterators.
       
    18   
       
    19   /// \ref Invalid is a global type that converts to each iterator
       
    20   /// in such a way that the value of the target iterator will be invalid.
       
    21 
       
    22   // It is also used to convert the \c INVALID constant to the
       
    23   // node iterator that makes is possible to write 
       
    24 
       
    25   //extern Invalid INVALID;
       
    26 
       
    27   //const Invalid &INVALID = *(Invalid *)0;
       
    28   const Invalid INVALID = Invalid();
       
    29 
       
    30 };
       
    31 
       
    32 #endif
       
    33