#pragma once #include template struct is_iterator : std::false_type { }; template struct is_iterator::difference_type, typename std::iterator_traits::pointer, typename std::iterator_traits::reference, typename std::iterator_traits::value_type, typename std::iterator_traits::iterator_category>> : std::true_type { }; template constexpr bool is_iterator_v = is_iterator::value;