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