`iterator_category_to_system` returns `host_system_tag` for `input_device_iterator_tag` instead of `device_system_tag`
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 486
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 295
Description
Hello,
I was trying to design my own iterators to make them compatible with thrust. I stumbled across some problems and dug inside the code. Ultimately, it seems that the following statement fails to compile:
static_assert(std::is_same::type, thrust::device_system_tag>::value, "test");
While the following passes:
static_assert(std::is_same::type, thrust::host_system_tag>::value, "test");
That is not really surprising given the code of iterator_category_to_system and the fact that input_device_iterator_tag actually inherits from std::input_iterator_tag, which is just another name for input_host_iterator_tag (see iterator_categories.h).
Am I missing something or there is a bug there?
Note that all classes inheriting from thrust::iterator_adapter seem to be fine. Still trying to figure out why.
Contributor guide
Assessment
This issue has not been assessed yet.