Я экспериментировал с std :: iterator_traits и std :: views :: iota . И вдруг я узнал, что std :: iterator_traits вернуть неожиданный тип для категории итератора.
#include
int main() {
auto view = std::views::iota(0ULL, 10000000000ULL);
static_assert(
std::is_same_v<
std::iterator_traits::iterator_category
, std::output_iterator_tag>
);
}
< /code>
What is the reason for that? Why does category from traits differ from std::random_access_tag
Я экспериментировал с std :: iterator_traits и std :: views :: iota . И вдруг я узнал, что std :: iterator_traits вернуть неожиданный тип для категории итератора. [code]libc++[/code]: [code]#include
int main() { auto view = std::views::iota(0ULL, 10000000000ULL);
int main() { auto view = std::views::iota(0ULL, 10000000000ULL);
static_assert( std::is_same_v< std::iterator_traits::iterator_category , std::output_iterator_tag> ); } < /code> What is the reason for that? Why does category from traits differ from std::random_access_tag[/code]?