-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Closed as not planned
Closed as not planned
Copy link
Labels
invalidResolved as invalid, i.e. not a bugResolved as invalid, i.e. not a buglibc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Description
With two T* pointers, </- always has the built-in meaning. But __wrap_iter has a T* template argument so that adds T's namespace as an associated namespace.
In particular, with nasty_char (from https://github.com/llvm/llvm-project/blob/main/libcxx/test/support/nasty_string.h),
https://godbolt.org/z/YT3MvPGd9:
static_assert(std::random_access_iterator<nasty_char*>);
static_assert(!std::random_access_iterator<std::__wrap_iter<nasty_char*>>);
static_assert(!std::random_access_iterator<nasty_string::iterator>);Shouldn't use user-overloads for non-pointer types, like template<typename T> friend bool operator<(T, T) with T = __wrap_iter<my_random_access_iterator>, either.
frederick-vs-ja
Metadata
Metadata
Assignees
Labels
invalidResolved as invalid, i.e. not a bugResolved as invalid, i.e. not a buglibc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.