Code review.
This commit is contained in:
parent
2c23f0a346
commit
f1080d7c39
2 changed files with 14 additions and 13 deletions
|
@ -39,11 +39,11 @@ struct iterator_traits<T, enable_if_t<!std::is_pointer<T>::value>>
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>> {
|
struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>> {
|
||||||
typedef std::random_access_iterator_tag iterator_category;
|
using iterator_category = std::random_access_iterator_tag;
|
||||||
typedef T value_type;
|
using value_type = T;
|
||||||
typedef ptrdiff_t difference_type;
|
using difference_type = ptrdiff_t;
|
||||||
typedef T* pointer;
|
using pointer = T*;
|
||||||
typedef T& reference;
|
using reference = T&;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -367,8 +367,8 @@ struct iterator_types <
|
||||||
using iterator_category = typename It::iterator_category;
|
using iterator_category = typename It::iterator_category;
|
||||||
};
|
};
|
||||||
|
|
||||||
// This is required due to https://github.com/nlohmann/json/issues/1341 - where some
|
// This is required as some compilers implement std::iterator_traits in a way that
|
||||||
// compilers implement std::iterator_traits in a way that doesn't work with SFINAE.
|
// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341.
|
||||||
template <typename T, typename = void>
|
template <typename T, typename = void>
|
||||||
struct iterator_traits
|
struct iterator_traits
|
||||||
{
|
{
|
||||||
|
@ -383,14 +383,15 @@ struct iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >>
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
|
struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
|
||||||
{
|
{
|
||||||
typedef std::random_access_iterator_tag iterator_category;
|
using iterator_category = std::random_access_iterator_tag;
|
||||||
typedef T value_type;
|
using value_type = T;
|
||||||
typedef ptrdiff_t difference_type;
|
using difference_type = ptrdiff_t;
|
||||||
typedef T* pointer;
|
using pointer = T*;
|
||||||
typedef T& reference;
|
using reference = T&;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/cpp_future.hpp>
|
// #include <nlohmann/detail/meta/cpp_future.hpp>
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/detected.hpp>
|
// #include <nlohmann/detail/meta/detected.hpp>
|
||||||
|
|
Loading…
Reference in a new issue