GenericValue::operator= : fixup assignment operator
While MSVC doesn't like the explicit `.template operator=<...>` syntax (see 4f40ed6), Clang 3.5 complains about the absence of it: In file included from ../../test/perftest/rapidjsontest.cpp:6: ../../include/rapidjson/document.h:504:18: error: use 'template' keyword to treat 'operator =' as a dependent template name return (*this).operator=<StringRefType>(str); ^ template Delegate both operator=(StringRefType) and operator=(T) to operator(GenericValue&).
This commit is contained in:
parent
e440b695a1
commit
41d211cd51
@ -501,7 +501,8 @@ public:
|
|||||||
\see GenericStringRef, operator=(T)
|
\see GenericStringRef, operator=(T)
|
||||||
*/
|
*/
|
||||||
GenericValue& operator=(StringRefType str) {
|
GenericValue& operator=(StringRefType str) {
|
||||||
return (*this).operator=<StringRefType>(str);
|
GenericValue s(str);
|
||||||
|
return *this = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Assignment with primitive types.
|
//! Assignment with primitive types.
|
||||||
@ -519,9 +520,8 @@ public:
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
RAPIDJSON_DISABLEIF_RETURN(internal::IsPointer<T>,GenericValue&)
|
RAPIDJSON_DISABLEIF_RETURN(internal::IsPointer<T>,GenericValue&)
|
||||||
operator=(T value) {
|
operator=(T value) {
|
||||||
this->~GenericValue();
|
GenericValue v(value);
|
||||||
new (this) GenericValue(value);
|
return *this = v;
|
||||||
return *this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Deep-copy assignment from Value
|
//! Deep-copy assignment from Value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user