[libcxx-commits] [libcxx] [libc++][spaceship] Implements X::iterator container requirements. (PR #99343)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Jul 23 09:00:15 PDT 2024
================
@@ -69,8 +80,11 @@ int main(int, char**) {
#endif
#if TEST_STD_VER > 17
- tests<contiguous_iterator<int*> >();
- static_assert(tests<contiguous_iterator<int*> >(), "");
+ tests<contiguous_iterator<int*>>();
+ static_assert(tests<contiguous_iterator<int*>>());
+
+ tests<three_way_contiguous_iterator<int*>>();
+ static_assert(tests<three_way_contiguous_iterator<int*>>());
----------------
ldionne wrote:
I would declare
```cpp
template <class Iter, bool HasSpaceship = false>
TEST_CONSTEXPR_CXX14 bool tests() {
...
if constexpr (HasSpaceship) {
...
}
}
```
Then:
```cpp
tests<three_way_contiguous_iterator<int*>, /* has spaceship */ true>();
static_assert(tests<three_way_contiguous_iterator<int*>, /* has spaceship */ true>());
```
https://github.com/llvm/llvm-project/pull/99343
More information about the libcxx-commits
mailing list