00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __libutilxx__sella__variant__Double_H__
00010 #define __libutilxx__sella__variant__Double_H__
00011
00012 #include "../../common.h"
00013 #include "TypeCastException.h"
00014 #include "Nullable.h"
00015
00016 #include <memory>
00017
00018 #include <boost/regex.hpp>
00019
00020 namespace sella {
00021 namespace variant {
00022 class Double;
00023 }
00024 }
00025
00026
00027
00028 class sella::variant::Double : public Nullable {
00029 public:
00030 static const boost::regex Pattern;
00031 static const int Type = 0x05;
00032
00033
00034 Double() throw ();
00035 Double(const std::string &value) throw (TypeCastException);
00036 Double(double value) throw ();
00037
00038 Double(const Double &other) throw ();
00039 virtual ~Double() throw ();
00040
00041
00042 bool operator==(const Double &other) const throw ();
00043 bool operator!=(const Double &other) const throw ();
00044 bool operator>(const Double &other) const throw ();
00045 bool operator<(const Double &other) const throw ();
00046 bool operator!() throw ();
00047 Double& operator=(const Double &other) throw ();
00048 Double& operator++() throw ();
00049 Double& operator--() throw ();
00050 Double& operator+=(double value) throw ();
00051 Double& operator-=(double value) throw ();
00052 Double& operator*=(double value) throw ();
00053 Double& operator/=(double value) throw ();
00054 Double& operator^=(double value) throw ();
00055
00056
00057 const double* getDouble() const throw (UnsupportedOperatorException);
00058
00059 virtual const std::string& str() const throw ();
00060 };
00061
00062 #endif
00063
00064
00065
00066