00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __libutilxx__sella__variant__String_H__
00010 #define __libutilxx__sella__variant__String_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 String;
00023 }
00024 }
00025
00026 class sella::variant::String : public Nullable {
00027 public:
00028 static const int Type = 0x06;
00029
00030 public:
00031
00032 String() throw ();
00033 String(const std::string &value) throw ();
00034
00035 String(const String &other) throw ();
00036 virtual ~String() throw ();
00037
00038
00039 bool operator==(const String &other) const throw ();
00040 bool operator!=(const String &other) const throw ();
00041 bool operator>(const String &other) const throw ();
00042 bool operator<(const String &other) const throw ();
00043 String& operator=(const String &other) throw ();
00044 String& operator+=(const std::string &value) throw ();
00045
00046
00047 const std::string* getString() const throw (UnsupportedOperatorException);
00048 size_t size() const throw ();
00049 bool empty() const throw ();
00050
00051 virtual void shrink_to_fit() throw ();
00052 virtual const std::string& str() const throw ();
00053 };
00054
00055 #endif
00056
00057
00058
00059