00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __libutilxx__sella__variant__Type_H__
00010 #define __libutilxx__sella__variant__Type_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 Type;
00023 }
00024 }
00025
00026 class sella::variant::Type {
00027 public:
00028 static const boost::regex Pattern;
00029
00030
00031 Type() throw ();
00032 Type(const std::string & value) throw (TypeCastException);
00033 Type(double value) throw ();
00034
00035 Type(const Type & other) throw ();
00036 virtual ~Type() throw ();
00037
00038
00039 Type & operator = (const Type & other) throw ();
00040
00041
00042 std::map<std::string, std::shared_ptr<BasicVariant>> * get_object() throw ();
00043
00044 private:
00045 int type;
00046 };
00047
00048 #endif
00049
00050
00051
00052