00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _undefined_h
00018 #define _undefined_h
00019
00020 #include <spl/types.h>
00021 #include <spl/Debug.h>
00022
00029 #define UNDEFINED_MAJIC 404 //< Majic number for ASSERT's in Compare and Convert
00030
00034 class Undefined : public IComparable
00035 {
00036 protected:
00037 static Undefined m_instance;
00038
00039 public:
00040 Undefined();
00041 virtual ~Undefined();
00042
00043 virtual bool Equals( const IComparable *a ) const;
00044 virtual int Compare( const IComparable *a ) const;
00045 virtual bool Equals( const IComparable& a ) const;
00046 virtual int Compare( const IComparable& a ) const;
00047
00050 virtual int32 MajicNumber() const;
00051
00052 virtual int32 HashCode() const;
00053
00054 inline static Undefined& Instance() { return m_instance; }
00055 };
00056
00057 inline void ValidateType( const Undefined& u ) {}
00058 inline void ValidateType( const Undefined *u ) {}
00059
00060 REGISTER_TYPEOF( 580, Undefined );
00061
00064 #endif