lemon/bits/invalid.h
author deba
Mon, 03 Apr 2006 09:45:23 +0000
changeset 2031 080d51024ac5
child 2140 c123ac9928db
permissions -rw-r--r--
Correcting the structure of the graph's and adaptor's map.
The template assign operators and map iterators can be used for adaptors also.

Some bugfix in the adaptors

New class SwapBpUGraphAdaptor which swaps the two nodeset of the graph.
     1 /* -*- C++ -*-
     2  *
     3  * This file is a part of LEMON, a generic C++ optimization library
     4  *
     5  * Copyright (C) 2003-2006
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
     8  *
     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.
    12  *
    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
    15  * purpose.
    16  *
    17  */
    18 
    19 #ifndef LEMON_BITS_INVALID_H
    20 #define LEMON_BITS_INVALID_H
    21 
    22 ///\file
    23 ///\brief Definition of INVALID.
    24 
    25 namespace lemon {
    26 
    27   /// Dummy type to make it easier to make invalid iterators.
    28   
    29   /// See \ref INVALID, how to use it.
    30   
    31   struct Invalid {
    32   public:
    33     bool operator==(Invalid) { return true;  }
    34     bool operator!=(Invalid) { return false; }
    35     bool operator< (Invalid) { return false; }
    36   };
    37   
    38   /// Invalid iterators.
    39   
    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.
    42 
    43   //const Invalid &INVALID = *(Invalid *)0;
    44 
    45 #ifdef LEMON_ONLY_TEMPLATES
    46   const Invalid INVALID = Invalid();
    47 #else
    48   extern const Invalid INVALID;
    49 #endif
    50 
    51 } //namespace lemon
    52 
    53 #endif
    54