diff --git a/adapter.hpp b/adapter.hpp index 3d4f4e63..87b929b9 100644 --- a/adapter.hpp +++ b/adapter.hpp @@ -192,20 +192,16 @@ namespace cruft::adapter { /// corresponds to the underlying iterator::value_type when /// dereferenced. template - struct scalar : public std::iterator< - typename std::iterator_traits::iterator_category, - typename std::tuple_element< + struct scalar { + public: + using iterator_category = typename std::iterator_traits::iterator_category; + using value_type = typename std::tuple_element< I, typename std::iterator_traits< IteratorT >::value_type - >::type, - typename std::iterator_traits::difference_type - > { - public: - using inner_type = typename std::iterator_traits::value_type; - - using value_type = decltype (std::get (std::declval ())); + >::type; + using difference_type = typename std::iterator_traits::difference_type; using reference = value_type&; using const_reference = value_type const&;