Code review.

This commit is contained in:
David Avedissian 2018-12-18 20:44:37 +00:00
parent 2c23f0a346
commit f1080d7c39
2 changed files with 14 additions and 13 deletions

View file

@ -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&;
}; };
} }
} }

View file

@ -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>