mirror of https://github.com/Icinga/icinga2.git
parent
7e293b004f
commit
54f0cb2c2c
|
@ -29,6 +29,23 @@ REGISTER_BUILTIN_TYPE(String, String::GetPrototype());
|
|||
|
||||
const String::SizeType String::NPos = std::string::npos;
|
||||
|
||||
String::String(Value&& other)
|
||||
{
|
||||
*this = std::move(other);
|
||||
}
|
||||
|
||||
String& String::operator=(Value&& other)
|
||||
{
|
||||
const String *p = other.GetPtr<String>();
|
||||
|
||||
if (p)
|
||||
m_Data = std::move(p->m_Data);
|
||||
else
|
||||
m_Data = other;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
String& String::operator+=(const Value& rhs)
|
||||
{
|
||||
m_Data += static_cast<String>(rhs);
|
||||
|
|
|
@ -85,6 +85,8 @@ public:
|
|||
: m_Data(std::move(other.m_Data))
|
||||
{ }
|
||||
|
||||
String(Value&& other);
|
||||
|
||||
inline ~String(void)
|
||||
{ }
|
||||
|
||||
|
@ -105,6 +107,8 @@ public:
|
|||
return *this;
|
||||
}
|
||||
|
||||
String& operator=(Value&& rhs);
|
||||
|
||||
inline String& operator=(const std::string& rhs)
|
||||
{
|
||||
m_Data = rhs;
|
||||
|
|
|
@ -286,6 +286,12 @@ public:
|
|||
return boost::get<T>(m_Value);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
const T *GetPtr(void) const
|
||||
{
|
||||
return &boost::get<T>(m_Value);
|
||||
}
|
||||
|
||||
private:
|
||||
boost::variant<boost::blank, double, bool, String, Object::Ptr> m_Value;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue