diff --git a/include/maxscale/config2.hh b/include/maxscale/config2.hh index 96e3e29bc..2b0dc2bd7 100644 --- a/include/maxscale/config2.hh +++ b/include/maxscale/config2.hh @@ -968,6 +968,12 @@ public: { } + This& operator=(const value_type& value) + { + m_value = value; + return static_cast(*this); + } + This& operator=(const ConcreteType& rhs) { // Only the value is copied, the parameter and the configuration @@ -1140,6 +1146,8 @@ inline bool operator>=(const typename ParamType::value_type& lhs, class Number : public ConcreteType { protected: + using ConcreteType::operator =; + Number(Configuration* pConfiguration, const ParamNumber* pParam) : ConcreteType(pConfiguration, pParam) { @@ -1152,6 +1160,8 @@ protected: class Count : public Number { public: + using Number::operator =; + Count(Configuration* pConfiguration, const ParamCount* pParam) : Number(pConfiguration, pParam) { @@ -1164,6 +1174,8 @@ public: class Integer : public Number { public: + using Number::operator =; + Integer(Configuration* pConfiguration, const ParamInteger* pParam) : Number(pConfiguration, pParam) { @@ -1176,6 +1188,8 @@ public: class BitMask : public Count { public: + using Count::operator =; + BitMask(Configuration* pConfiguration, const ParamCount* pParam) : Count(pConfiguration, pParam) { @@ -1193,6 +1207,8 @@ public: class Bool : public ConcreteType { public: + using ConcreteType::operator =; + Bool(Configuration* pConfiguration, const ParamBool* pParam) : ConcreteType(pConfiguration, pParam) { @@ -1211,6 +1227,8 @@ template class Duration : public ConcreteType, ParamDuration> { public: + using ConcreteType, ParamDuration>::operator =; + Duration(Configuration* pConfiguration, const ParamDuration* pParam) : ConcreteType, ParamDuration>(pConfiguration, pParam) { @@ -1243,6 +1261,8 @@ template class Enum : public ConcreteType, ParamEnum> { public: + using ConcreteType, ParamEnum>::operator =; + Enum(Configuration* pConfiguration, const ParamEnum* pParam) : ConcreteType, ParamEnum>(pConfiguration, pParam) { @@ -1255,6 +1275,8 @@ public: class Path : public ConcreteType { public: + using ConcreteType::operator =; + Path(Configuration* pConfiguration, const ParamPath* pParam) : ConcreteType(pConfiguration, pParam) { @@ -1277,6 +1299,8 @@ public: class Size : public ConcreteType { public: + using ConcreteType::operator =; + Size(Configuration* pConfiguration, const ParamSize* pParam) : ConcreteType(pConfiguration, pParam) { @@ -1294,6 +1318,8 @@ inline Size::value_type operator/(const Size& lhs, Size::value_type rhs) class Server : public ConcreteType { public: + using ConcreteType::operator =; + Server(Configuration* pConfiguration, const ParamServer* pParam) : ConcreteType(pConfiguration, pParam) { @@ -1306,6 +1332,8 @@ public: class String : public ConcreteType { public: + using ConcreteType::operator =; + String(Configuration* pConfiguration, const ParamString* pParam) : ConcreteType(pConfiguration, pParam) {