iterator_traits
Где-то предлагали template <typename T, typename = decltype(*std::declval<T&>(), void(), ++std::declval<T&>(), void())>, такое вообще не компилится даже если нет вызова
std::is_base_of_v< std::input_iterator_tag, typename std::iterator_traits<decltype(some_iter)>::iterator_category >
Это не нужно, во первых
Обсуждают сегодня