⚗️ exclude iterators from KeyType
This commit is contained in:
parent
69d74d4e3d
commit
418fdbab62
@ -399,11 +399,13 @@ struct is_constructible_tuple<T1, std::tuple<Args...>> : conjunction<std::is_con
|
|||||||
template<typename BasicJsonType, typename KeyType>
|
template<typename BasicJsonType, typename KeyType>
|
||||||
struct is_key_type
|
struct is_key_type
|
||||||
{
|
{
|
||||||
static constexpr bool value =
|
static constexpr bool value = (
|
||||||
#if defined(JSON_HAS_CPP_17)
|
#if defined(JSON_HAS_CPP_17)
|
||||||
std::is_same<typename std::decay<KeyType>::type, std::string_view>::value ||
|
std::is_same<typename std::decay<KeyType>::type, std::string_view>::value ||
|
||||||
#endif
|
#endif
|
||||||
std::is_convertible<KeyType, typename BasicJsonType::object_t::key_type>::value;
|
std::is_convertible<KeyType, typename BasicJsonType::object_t::key_type>::value)
|
||||||
|
&& !std::is_same<KeyType, typename BasicJsonType::iterator>::value
|
||||||
|
&& !std::is_same<KeyType, typename BasicJsonType::const_iterator>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|||||||
@ -3776,11 +3776,13 @@ struct is_constructible_tuple<T1, std::tuple<Args...>> : conjunction<std::is_con
|
|||||||
template<typename BasicJsonType, typename KeyType>
|
template<typename BasicJsonType, typename KeyType>
|
||||||
struct is_key_type
|
struct is_key_type
|
||||||
{
|
{
|
||||||
static constexpr bool value =
|
static constexpr bool value = (
|
||||||
#if defined(JSON_HAS_CPP_17)
|
#if defined(JSON_HAS_CPP_17)
|
||||||
std::is_same<typename std::decay<KeyType>::type, std::string_view>::value ||
|
std::is_same<typename std::decay<KeyType>::type, std::string_view>::value ||
|
||||||
#endif
|
#endif
|
||||||
std::is_convertible<KeyType, typename BasicJsonType::object_t::key_type>::value;
|
std::is_convertible<KeyType, typename BasicJsonType::object_t::key_type>::value)
|
||||||
|
&& !std::is_same<KeyType, typename BasicJsonType::iterator>::value
|
||||||
|
&& !std::is_same<KeyType, typename BasicJsonType::const_iterator>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user