00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00047 #ifndef STLSOFT_INCL_STLSOFT_UTIL_HPP_ZERO
00048 #define STLSOFT_INCL_STLSOFT_UTIL_HPP_ZERO
00049 
00050 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00051 # define STLSOFT_VER_STLSOFT_UTIL_HPP_ZERO_MAJOR       4
00052 # define STLSOFT_VER_STLSOFT_UTIL_HPP_ZERO_MINOR       1
00053 # define STLSOFT_VER_STLSOFT_UTIL_HPP_ZERO_REVISION    1
00054 # define STLSOFT_VER_STLSOFT_UTIL_HPP_ZERO_EDIT        45
00055 #endif 
00056 
00057 
00058 
00059 
00060 
00061 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
00062 # include <stlsoft/stlsoft.h>
00063 #endif 
00064 
00065 
00066 
00067 
00068 
00069 #ifndef _STLSOFT_NO_NAMESPACE
00070 namespace stlsoft
00071 {
00072 #endif 
00073 
00074 
00075 
00076 
00077 
00099 struct ZERO_v
00100 {
00101 
00102 public:
00104     ZERO_v()
00105     {}
00106 
00111 public:
00112     static ZERO_v create()
00113     {
00114         return ZERO_v();
00115     }
00116 
00117 
00118 public:
00120     operator ss_sint8_t () const
00121     {
00122         return 0;
00123     }
00125     operator ss_uint8_t () const
00126     {
00127         return 0;
00128     }
00130     operator ss_sint16_t () const
00131     {
00132         return 0;
00133     }
00135     operator ss_uint16_t () const
00136     {
00137         return 0;
00138     }
00140     operator ss_sint32_t () const
00141     {
00142         return 0;
00143     }
00145     operator ss_uint32_t () const
00146     {
00147         return 0;
00148     }
00149 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00151     operator ss_sint64_t () const
00152     {
00153         return 0;
00154     }
00156     operator ss_uint64_t () const
00157     {
00158         return 0;
00159     }
00160 #endif 
00161 
00162 #ifdef STLSOFT_CF_INT_DISTINCT_INT_TYPE
00164     operator signed int () const
00165     {
00166         return 0;
00167     }
00169     operator unsigned int () const
00170     {
00171         return 0;
00172     }
00173 #endif 
00174 
00175 #ifdef STLSOFT_CF_LONG_DISTINCT_INT_TYPE
00177     operator signed long () const
00178     {
00179         return 0;
00180     }
00182     operator unsigned long () const
00183     {
00184         return 0;
00185     }
00186 #endif 
00187 
00189     operator float () const
00190     {
00191         return 0.0f;
00192     }
00194     operator double () const
00195     {
00196         return 0.0;
00197     }
00199     operator long double () const
00200     {
00201         return 0.0;
00202     }
00203 
00204 
00205 private:
00206     void operator &() const;
00207 
00208     ZERO_v(ZERO_v const&);
00209     ZERO_v const& operator =(ZERO_v const&);
00210 };
00211 
00216 inline ss_bool_t operator ==(ZERO_v const& , ss_sint8_t i)         { return i == 0; }
00217 inline ss_bool_t operator ==(ZERO_v const& , ss_uint8_t i)         { return i == 0; }
00218 inline ss_bool_t operator ==(ZERO_v const& , ss_sint16_t i)        { return i == 0; }
00219 inline ss_bool_t operator ==(ZERO_v const& , ss_uint16_t i)        { return i == 0; }
00220 inline ss_bool_t operator ==(ZERO_v const& , ss_sint32_t i)        { return i == 0; }
00221 inline ss_bool_t operator ==(ZERO_v const& , ss_uint32_t i)        { return i == 0; }
00222 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00223 inline ss_bool_t operator ==(ZERO_v const& , ss_sint64_t const& i) { return i == 0; }
00224 inline ss_bool_t operator ==(ZERO_v const& , ss_uint64_t const& i) { return i == 0; }
00225 #endif 
00226 #ifdef STLSOFT_CF_INT_DISTINCT_INT_TYPE
00227 inline ss_bool_t operator ==(ZERO_v const& , signed int i)         { return i == 0; }
00228 inline ss_bool_t operator ==(ZERO_v const& , unsigned int i)       { return i == 0; }
00229 #endif 
00230 #ifdef STLSOFT_CF_LONG_DISTINCT_INT_TYPE
00231 inline ss_bool_t operator ==(ZERO_v const& , signed long i)        { return i == 0; }
00232 inline ss_bool_t operator ==(ZERO_v const& , unsigned long i)      { return i == 0; }
00233 #endif 
00234 inline ss_bool_t operator ==(ZERO_v const& , float const& i)       { return i == 0; }
00235 inline ss_bool_t operator ==(ZERO_v const& , double const& i)      { return i == 0; }
00236 inline ss_bool_t operator ==(ZERO_v const& , long double const& i) { return i == 0; }
00237 
00242 inline ss_bool_t operator ==(ss_sint8_t i, ZERO_v const& )         { return i == 0; }
00243 inline ss_bool_t operator ==(ss_uint8_t i, ZERO_v const& )         { return i == 0; }
00244 inline ss_bool_t operator ==(ss_sint16_t i, ZERO_v const& )        { return i == 0; }
00245 inline ss_bool_t operator ==(ss_uint16_t i, ZERO_v const& )        { return i == 0; }
00246 inline ss_bool_t operator ==(ss_sint32_t i, ZERO_v const& )        { return i == 0; }
00247 inline ss_bool_t operator ==(ss_uint32_t i, ZERO_v const& )        { return i == 0; }
00248 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00249 inline ss_bool_t operator ==(ss_sint64_t const& i, ZERO_v const& ) { return i == 0; }
00250 inline ss_bool_t operator ==(ss_uint64_t const& i, ZERO_v const& ) { return i == 0; }
00251 #endif 
00252 #ifdef STLSOFT_CF_INT_DISTINCT_INT_TYPE
00253 inline ss_bool_t operator ==(signed int i, ZERO_v const& )         { return i == 0; }
00254 inline ss_bool_t operator ==(unsigned int i, ZERO_v const& )       { return i == 0; }
00255 #endif 
00256 #ifdef STLSOFT_CF_LONG_DISTINCT_INT_TYPE
00257 inline ss_bool_t operator ==(signed long i, ZERO_v const& )        { return i == 0; }
00258 inline ss_bool_t operator ==(unsigned long i,ZERO_v const& )       { return i == 0; }
00259 #endif 
00260 inline ss_bool_t operator ==(float const& i, ZERO_v const& )       { return i == 0; }
00261 inline ss_bool_t operator ==(double const& i, ZERO_v const& )      { return i == 0; }
00262 inline ss_bool_t operator ==(long double const& i, ZERO_v const& ) { return i == 0; }
00263 
00268 inline ss_bool_t operator !=(ZERO_v const& , ss_sint8_t i)         { return i != 0; }
00269 inline ss_bool_t operator !=(ZERO_v const& , ss_uint8_t i)         { return i != 0; }
00270 inline ss_bool_t operator !=(ZERO_v const& , ss_sint16_t i)        { return i != 0; }
00271 inline ss_bool_t operator !=(ZERO_v const& , ss_uint16_t i)        { return i != 0; }
00272 inline ss_bool_t operator !=(ZERO_v const& , ss_sint32_t i)        { return i != 0; }
00273 inline ss_bool_t operator !=(ZERO_v const& , ss_uint32_t i)        { return i != 0; }
00274 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00275 inline ss_bool_t operator !=(ZERO_v const& , ss_sint64_t const& i) { return i != 0; }
00276 inline ss_bool_t operator !=(ZERO_v const& , ss_uint64_t const& i) { return i != 0; }
00277 #endif 
00278 #ifdef STLSOFT_CF_INT_DISTINCT_INT_TYPE
00279 inline ss_bool_t operator !=(ZERO_v const& , signed int i)         { return i != 0; }
00280 inline ss_bool_t operator !=(ZERO_v const& , unsigned int i)       { return i != 0; }
00281 #endif 
00282 #ifdef STLSOFT_CF_LONG_DISTINCT_INT_TYPE
00283 inline ss_bool_t operator !=(ZERO_v const& , signed long i)        { return i != 0; }
00284 inline ss_bool_t operator !=(ZERO_v const& , unsigned long i)      { return i != 0; }
00285 #endif 
00286 inline ss_bool_t operator !=(ZERO_v const& , float const& i)       { return i != 0; }
00287 inline ss_bool_t operator !=(ZERO_v const& , double const& i)      { return i != 0; }
00288 inline ss_bool_t operator !=(ZERO_v const& , long double const& i) { return i != 0; }
00289 
00294 inline ss_bool_t operator !=(ss_sint8_t i, ZERO_v const& )         { return i != 0; }
00295 inline ss_bool_t operator !=(ss_uint8_t i, ZERO_v const& )         { return i != 0; }
00296 inline ss_bool_t operator !=(ss_sint16_t i, ZERO_v const& )        { return i != 0; }
00297 inline ss_bool_t operator !=(ss_uint16_t i, ZERO_v const& )        { return i != 0; }
00298 inline ss_bool_t operator !=(ss_sint32_t i, ZERO_v const& )        { return i != 0; }
00299 inline ss_bool_t operator !=(ss_uint32_t i, ZERO_v const& )        { return i != 0; }
00300 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00301 inline ss_bool_t operator !=(ss_sint64_t const& i, ZERO_v const& ) { return i != 0; }
00302 inline ss_bool_t operator !=(ss_uint64_t const& i, ZERO_v const& ) { return i != 0; }
00303 #endif 
00304 #ifdef STLSOFT_CF_INT_DISTINCT_INT_TYPE
00305 inline ss_bool_t operator !=(signed int i, ZERO_v const& )         { return i != 0; }
00306 inline ss_bool_t operator !=(unsigned int i, ZERO_v const& )       { return i != 0; }
00307 #endif 
00308 #ifdef STLSOFT_CF_LONG_DISTINCT_INT_TYPE
00309 inline ss_bool_t operator !=(signed long i, ZERO_v const& )        { return i != 0; }
00310 inline ss_bool_t operator !=(unsigned long i,ZERO_v const& )       { return i != 0; }
00311 #endif 
00312 inline ss_bool_t operator !=(float const& i, ZERO_v const& )       { return i != 0; }
00313 inline ss_bool_t operator !=(double const& i, ZERO_v const& )      { return i != 0; }
00314 inline ss_bool_t operator !=(long double const& i, ZERO_v const& ) { return i != 0; }
00315 
00317 
00318 
00319 #ifdef STLSOFT_UNITTEST
00320 # include "./unittest/zero_unittest_.h"
00321 #endif 
00322 
00323 
00324 
00325 #ifndef _STLSOFT_NO_NAMESPACE
00326 } 
00327 #endif 
00328 
00329 
00330 
00331 #endif 
00332 
00333