🔨 fixed GCC warnings in #663

https://github.com/nlohmann/json/pull/663#issuecomment-318931884
This commit is contained in:
Niels Lohmann 2017-07-31 23:17:14 +02:00
parent 850d856aae
commit e60002a1b3
No known key found for this signature in database
GPG key ID: 7F3CEA63AE251B69

View file

@ -6872,6 +6872,11 @@ class json_ref
is_rvalue(true) is_rvalue(true)
{} {}
// class should be movable only
json_ref(json_ref&&) = default;
json_ref(const json_ref&) = delete;
json_ref& operator=(const json_ref&) = delete;
value_type moved_or_copied() const value_type moved_or_copied() const
{ {
if (is_rvalue) if (is_rvalue)
@ -6895,7 +6900,7 @@ class json_ref
} }
private: private:
mutable value_type owned_value; mutable value_type owned_value = nullptr;
value_type* value_ref = nullptr; value_type* value_ref = nullptr;
const bool is_rvalue; const bool is_rvalue;
}; };
@ -9826,6 +9831,7 @@ class basic_json
*/ */
template < typename ValueType, typename std::enable_if < template < typename ValueType, typename std::enable_if <
not std::is_pointer<ValueType>::value and not std::is_pointer<ValueType>::value and
not std::is_same<ValueType, detail::json_ref<basic_json>>::value and
not std::is_same<ValueType, typename string_t::value_type>::value not std::is_same<ValueType, typename string_t::value_type>::value
#ifndef _MSC_VER // fix for issue #167 operator<< ambiguity under VS2015 #ifndef _MSC_VER // fix for issue #167 operator<< ambiguity under VS2015
and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value