Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RandomAccessIteror member functions for MdspanRandomAccessIterator #271

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

masterleinad
Copy link
Contributor

@masterleinad masterleinad commented May 28, 2024

I need the first commit adding some RandomAccessIteror member functions for MdspanRandomAccessIterator to compile the tests. The second commit fixes an apparent oversight in not trying to check the result of a comparison in the transposed test file.

@dalg24
Copy link
Member

dalg24 commented May 28, 2024

Why was that not caught by the CI?

@masterleinad
Copy link
Contributor Author

The errors look like

[...]
[ 55%] Building CXX object tests/native/CMakeFiles/iterator.dir/iterator.cpp.o
cd /tmp/stdBLAS/build/tests/native && /opt/homebrew/bin/mpicxx  -I/tmp/stdBLAS/build/include/experimental -I/tmp/stdBLAS/include -I/tmp/stdBLAS/build/_deps/mdspan-src/include -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/System/Library/Frameworks -isystem /tmp/stdBLAS/build/_deps/googletest-src/googletest/include -isystem /tmp/stdBLAS/build/_deps/googletest-src/googletest -std=gnu++23 -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -MD -MT tests/native/CMakeFiles/iterator.dir/iterator.cpp.o -MF CMakeFiles/iterator.dir/iterator.cpp.o.d -o CMakeFiles/iterator.dir/iterator.cpp.o -c /tmp/stdBLAS/tests/native/iterator.cpp
/tmp/stdBLAS/tests/native/iterator.cpp:17:17: warning: 'iterator<std::random_access_iterator_tag, double, unsigned long>' is deprecated [-Wdeprecated-declarations]
   17 |     public std::iterator<
      |                 ^
/tmp/stdBLAS/tests/native/iterator.cpp:288:22: note: in instantiation of template class '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' requested here
  288 |       auto the_beg = begin(A_col0);
      |                      ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/iterator.h:23:29: note: 'iterator<std::random_access_iterator_tag, double, unsigned long>' has been explicitly marked deprecated here
   23 | struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator {
      |                             ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__config:1001:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17'
 1001 | #    define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED
      |                                         ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__config:974:49: note: expanded from macro '_LIBCPP_DEPRECATED'
  974 | #      define _LIBCPP_DEPRECATED __attribute__((__deprecated__))
      |                                                 ^
In file included from /tmp/stdBLAS/tests/native/iterator.cpp:1:
In file included from /tmp/stdBLAS/tests/native/./gtest_fixtures.hpp:46:
In file included from /tmp/stdBLAS/build/_deps/googletest-src/googletest/include/gtest/gtest.h:57:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/memory:937:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/ranges_uninitialized_algorithms.h:22:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/uninitialized_algorithms.h:13:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/copy.h:12:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/copy_move_common.h:12:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/iterator_operations.h:15:
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/advance.h:58:7: error: no viable overloaded '+='
   58 |   __i += __n;
      |   ~~~ ^  ~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/advance.h:71:8: note: in instantiation of function template specialization 'std::__advance<(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
   71 |   std::__advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category());
      |        ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/next.h:35:8: note: in instantiation of function template specialization 'std::advance<(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, long, long, void>' requested here
   35 |   std::advance(__x, __n);
      |        ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/iterator_operations.h:149:17: note: in instantiation of function template specialization 'std::next<(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, 0>' requested here
  149 |     return std::next(std::forward<_Iter>(__it), __n);
      |                 ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/rotate.h:162:31: note: in instantiation of function template specialization 'std::_IterOps<std::_ClassicAlgPolicy>::next<(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>> &>' requested here
  162 |     if (_IterOps<_AlgPolicy>::next(__first) == __middle)
      |                               ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/rotate.h:183:24: note: in instantiation of function template specialization 'std::__rotate_impl<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  183 |   auto __result = std::__rotate_impl<_AlgPolicy>(std::move(__first), std::move(__middle), __last_iter, _IterCategory());
      |                        ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/rotate.h:191:15: note: in instantiation of function template specialization 'std::__rotate<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  191 |   return std::__rotate<_ClassicAlgPolicy>(std::move(__first), std::move(__middle), std::move(__last)).first;
      |               ^
/tmp/stdBLAS/tests/native/iterator.cpp:239:10: note: in instantiation of function template specialization 'std::rotate<(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  239 |     std::rotate(begin(x), begin(x) + 1, end(x));
      |          ^
/tmp/stdBLAS/tests/native/iterator.cpp:334:25: note: in instantiation of function template specialization '(anonymous namespace)::testRotateSort<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' requested here
  334 |     const bool ok_col = testRotateSort(A_col0);
      |                         ^
In file included from /tmp/stdBLAS/tests/native/iterator.cpp:1:
In file included from /tmp/stdBLAS/tests/native/./gtest_fixtures.hpp:46:
In file included from /tmp/stdBLAS/build/_deps/googletest-src/googletest/include/gtest/gtest.h:58:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/ostream:189:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/format:195:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__format/container_adaptor.h:24:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/queue:273:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/vector:316:
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/rotate.h:118:14: error: no viable overloaded '+='
  118 |         __p2 += __m1;
      |         ~~~~ ^  ~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/rotate.h:166:17: note: in instantiation of function template specialization 'std::__rotate_gcd<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  166 |     return std::__rotate_gcd<_AlgPolicy>(__first, __middle, __last);
      |                 ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/rotate.h:183:24: note: in instantiation of function template specialization 'std::__rotate_impl<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  183 |   auto __result = std::__rotate_impl<_AlgPolicy>(std::move(__first), std::move(__middle), __last_iter, _IterCategory());
      |                        ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/rotate.h:191:15: note: in instantiation of function template specialization 'std::__rotate<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  191 |   return std::__rotate<_ClassicAlgPolicy>(std::move(__first), std::move(__middle), std::move(__last)).first;
      |               ^
/tmp/stdBLAS/tests/native/iterator.cpp:239:10: note: in instantiation of function template specialization 'std::rotate<(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  239 |     std::rotate(begin(x), begin(x) + 1, end(x));
      |          ^
/tmp/stdBLAS/tests/native/iterator.cpp:334:25: note: in instantiation of function template specialization '(anonymous namespace)::testRotateSort<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' requested here
  334 |     const bool ok_col = testRotateSort(A_col0);
      |                         ^
In file included from /tmp/stdBLAS/tests/native/iterator.cpp:1:
In file included from /tmp/stdBLAS/tests/native/./gtest_fixtures.hpp:46:
In file included from /tmp/stdBLAS/build/_deps/googletest-src/googletest/include/gtest/gtest.h:58:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/ostream:189:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/format:195:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__format/container_adaptor.h:24:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/queue:257:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/make_heap.h:15:
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sift_down.h:95:15: error: no viable overloaded '+='
   95 |     __child_i += difference_type(__child + 1);
      |     ~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/pop_heap.h:47:41: note: in instantiation of function template specialization 'std::__floyd_sift_down<std::_ClassicAlgPolicy, std::__less<void, void> &, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
   47 |     _RandomAccessIterator __hole = std::__floyd_sift_down<_AlgPolicy>(__first, __comp_ref, __len);
      |                                         ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort_heap.h:40:10: note: in instantiation of function template specialization 'std::__pop_heap<std::_ClassicAlgPolicy, std::__less<void, void>, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
   40 |     std::__pop_heap<_AlgPolicy>(__first, __last, __comp_ref, __n);
      |          ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/partial_sort.h:51:8: note: in instantiation of function template specialization 'std::__sort_heap<std::_ClassicAlgPolicy, std::__less<void, void> &, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
   51 |   std::__sort_heap<_AlgPolicy>(std::move(__first), std::move(__middle), __comp);
      |        ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/partial_sort.h:65:12: note: in instantiation of function template specialization 'std::__partial_sort_impl<std::_ClassicAlgPolicy, std::__less<void, void> &, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
   65 |       std::__partial_sort_impl<_AlgPolicy>(__first, __middle, __last, static_cast<__comp_ref_type<_Compare> >(__comp));
      |            ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:993:10: note: in instantiation of function template specialization 'std::__partial_sort<std::_ClassicAlgPolicy, std::__less<void, void>, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  993 |     std::__partial_sort<_AlgPolicy>(
      |          ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:1004:8: note: in instantiation of function template specialization 'std::__sort_impl<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, std::__less<void, void>>' requested here
 1004 |   std::__sort_impl<_ClassicAlgPolicy>(std::move(__first), std::move(__last), __comp);
      |        ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:1010:8: note: in instantiation of function template specialization 'std::sort<(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, std::__less<void, void>>' requested here
 1010 |   std::sort(__first, __last, __less<>());
      |        ^
/tmp/stdBLAS/tests/native/iterator.cpp:240:10: note: in instantiation of function template specialization 'std::sort<(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>>' requested here
  240 |     std::sort(begin(x), end(x));
      |          ^
/tmp/stdBLAS/tests/native/iterator.cpp:334:25: note: in instantiation of function template specialization '(anonymous namespace)::testRotateSort<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' requested here
  334 |     const bool ok_col = testRotateSort(A_col0);
      |                         ^
In file included from /tmp/stdBLAS/tests/native/iterator.cpp:2:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/algorithm:1847:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/nth_element.h:15:
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:573:40: error: invalid operands to binary expression ('(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' and '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>')
  573 |   bool __already_partitioned = __first >= __last;
      |                                ~~~~~~~ ^  ~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:844:42: note: in instantiation of function template specialization 'std::__bitset_partition<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, std::__less<void, void> &>' requested here
  844 |                                   ? std::__bitset_partition<_AlgPolicy, _RandomAccessIterator, _Compare>(__first, __last, __comp)
      |                                          ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:929:8: note: in instantiation of function template specialization 'std::__introsort<std::_ClassicAlgPolicy, std::__less<void, void> &, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, false>' requested here
  929 |   std::__introsort<_AlgPolicy,
      |        ^
/tmp/stdBLAS/tests/native/iterator.cpp:334:25: note: in instantiation of function template specialization '(anonymous namespace)::testRotateSort<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' requested here
  334 |     const bool ok_col = testRotateSort(A_col0);
      |                         ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__system_error/error_condition.h:113:1: note: candidate function not viable: no known conversion from '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' to 'const error_condition' for 1st argument
  113 | operator<=>(const error_condition& __x, const error_condition& __y) noexcept {
      | ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__system_error/error_code.h:126:46: note: candidate function not viable: no known conversion from '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' to 'const error_code' for 1st argument
  126 | inline _LIBCPP_HIDE_FROM_ABI strong_ordering operator<=>(const error_code& __x, const error_code& __y) noexcept {
      |                                              ^           ~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__variant/monostate.h:32:56: note: candidate function not viable: no known conversion from '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' to 'monostate' for 1st argument
   32 | _LIBCPP_HIDE_FROM_ABI inline constexpr strong_ordering operator<=>(monostate, monostate) noexcept {
      |                                                        ^           ~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__utility/pair.h:524:1: note: candidate template ignored: could not match 'pair' against 'MdspanRandomAccessIterator'
  524 | operator<=>(const pair<_T1, _T2>& __x, const pair<_U1, _U2>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__utility/pair.h:524:1: note: candidate template ignored: could not match 'pair' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/reverse_iterator.h:255:1: note: candidate template ignored: could not match 'reverse_iterator' against 'MdspanRandomAccessIterator'
  255 | operator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/reverse_iterator.h:280:1: note: candidate template ignored: could not match 'reverse_iterator' against 'MdspanRandomAccessIterator'
  280 | operator<=>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/reverse_iterator.h:280:1: note: candidate template ignored: could not match 'reverse_iterator' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:489:35: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  489 | inline _LIBCPP_HIDE_FROM_ABI bool operator>=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {
      |                                   ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:498:5: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  498 |     operator<=>(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {
      |     ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:498:5: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:559:65: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  559 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 bool operator>=(const unique_ptr<_T1, _D1>& __x, nullptr_t) {
      |                                                                 ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:564:65: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  564 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 bool operator>=(nullptr_t, const unique_ptr<_T1, _D1>& __x) {
      |                                                                 ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:572:1: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  572 | operator<=>(const unique_ptr<_T1, _D1>& __x, nullptr_t) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:572:1: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:1143:39: note: candidate template ignored: could not match 'shared_ptr' against 'MdspanRandomAccessIterator'
 1143 | _LIBCPP_HIDE_FROM_ABI strong_ordering operator<=>(shared_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) noexcept {
      |                                       ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:1143:39: note: candidate template ignored: could not match 'shared_ptr' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:1214:39: note: candidate template ignored: could not match 'shared_ptr' against 'MdspanRandomAccessIterator'
 1214 | _LIBCPP_HIDE_FROM_ABI strong_ordering operator<=>(shared_ptr<_Tp> const& __x, nullptr_t) noexcept {
      |                                       ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:1214:39: note: candidate template ignored: could not match 'shared_ptr' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/tuple:1227:1: note: candidate template ignored: could not match 'tuple' against 'MdspanRandomAccessIterator'
 1227 | operator<=>(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/tuple:1227:1: note: candidate template ignored: could not match 'tuple' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/wrap_iter.h:156:1: note: candidate template ignored: could not match '__wrap_iter' against 'MdspanRandomAccessIterator'
  156 | operator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/wrap_iter.h:162:1: note: candidate template ignored: could not match '__wrap_iter' against 'MdspanRandomAccessIterator'
  162 | operator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string_view:712:38: note: candidate template ignored: could not match 'basic_string_view' against 'MdspanRandomAccessIterator'
  712 | _LIBCPP_HIDE_FROM_ABI constexpr auto operator<=>(basic_string_view<_CharT, _Traits> __lhs,
      |                                      ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string_view:712:38: note: candidate template ignored: could not match 'basic_string_view' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string:3749:38: note: candidate template ignored: could not match 'basic_string' against 'MdspanRandomAccessIterator'
 3749 | _LIBCPP_HIDE_FROM_ABI constexpr auto operator<=>(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
      |                                      ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string:3756:1: note: candidate template ignored: could not match 'basic_string' against 'MdspanRandomAccessIterator'
 3756 | operator<=>(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string:3756:1: note: candidate template ignored: could not match 'basic_string' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1048:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1048 | operator>=(const optional<_Tp>& __x, const optional<_Up>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1060:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1060 | operator<=>(const optional<_Tp>& __x, const optional<_Up>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1060:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1134:49: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1134 | _LIBCPP_HIDE_FROM_ABI constexpr strong_ordering operator<=>(const optional<_Tp>& __x, nullopt_t) noexcept {
      |                                                 ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1134:49: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1225:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1225 | operator>=(const optional<_Tp>& __x, const _Up& __v) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1233:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1233 | operator>=(const _Tp& __v, const optional<_Up>& __x) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1242:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1242 | operator<=>(const optional<_Tp>& __x, const _Up& __v) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1242:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/move_iterator.h:288:1: note: candidate template ignored: could not match 'move_iterator' against 'MdspanRandomAccessIterator'
  288 | operator>=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/move_iterator.h:295:1: note: candidate template ignored: could not match 'move_iterator' against 'MdspanRandomAccessIterator'
  295 | operator<=>(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/move_iterator.h:295:1: note: candidate template ignored: could not match 'move_iterator' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/deque:2545:1: note: candidate template ignored: could not match 'deque' against 'MdspanRandomAccessIterator'
 2545 | operator<=>(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/array:419:1: note: candidate template ignored: could not match 'array' against 'MdspanRandomAccessIterator'
  419 | operator<=>(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/vector:2897:1: note: candidate template ignored: could not match 'vector' against 'MdspanRandomAccessIterator'
 2897 | operator<=>(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/queue:489:35: note: candidate template ignored: could not match 'queue' against 'MdspanRandomAccessIterator'
  489 | inline _LIBCPP_HIDE_FROM_ABI bool operator>=(const queue<_Tp, _Container>& __x, const queue<_Tp, _Container>& __y) {
      |                                   ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/queue:502:1: note: candidate template ignored: could not match 'queue' against 'MdspanRandomAccessIterator'
  502 | operator<=>(const queue<_Tp, _Container>& __x, const queue<_Tp, _Container>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/stack:340:35: note: candidate template ignored: could not match 'stack' against 'MdspanRandomAccessIterator'
  340 | inline _LIBCPP_HIDE_FROM_ABI bool operator>=(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y) {
      |                                   ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/stack:353:1: note: candidate template ignored: could not match 'stack' against 'MdspanRandomAccessIterator'
  353 | operator<=>(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/variant:1465:1: note: candidate template ignored: could not match 'variant' against 'MdspanRandomAccessIterator'
 1465 | operator<=>(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/variant:1535:38: note: candidate template ignored: could not match 'variant' against 'MdspanRandomAccessIterator'
 1535 | _LIBCPP_HIDE_FROM_ABI constexpr bool operator>=(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) {
      |                                      ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/map:1625:1: note: candidate template ignored: could not match 'map' against 'MdspanRandomAccessIterator'
 1625 | operator<=>(const map<_Key, _Tp, _Compare, _Allocator>& __x, const map<_Key, _Tp, _Compare, _Allocator>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/map:2145:1: note: candidate template ignored: could not match 'multimap' against 'MdspanRandomAccessIterator'
 2145 | operator<=>(const multimap<_Key, _Tp, _Compare, _Allocator>& __x,
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/set:998:1: note: candidate template ignored: could not match 'set' against 'MdspanRandomAccessIterator'
  998 | operator<=>(const set<_Key, _Allocator>& __x, const set<_Key, _Allocator>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/set:1458:1: note: candidate template ignored: could not match 'multiset' against 'MdspanRandomAccessIterator'
 1458 | operator<=>(const multiset<_Key, _Allocator>& __x, const multiset<_Key, _Allocator>& __y) {
      | ^
In file included from /tmp/stdBLAS/tests/native/iterator.cpp:2:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/algorithm:1847:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/nth_element.h:15:
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:600:13: error: no viable overloaded '+='
  600 |     __first += (__left_bitset == 0) ? difference_type(__detail::__block_size) : difference_type(0);
      |     ~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:601:11: error: no viable overloaded '-='
  601 |     __lm1 -= (__right_bitset == 0) ? difference_type(__detail::__block_size) : difference_type(0);
      |     ~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:488:11: error: no viable overloaded '+='
  488 |   __first += (__left_bitset == 0) ? __l_size : 0;
      |   ~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:605:8: note: in instantiation of function template specialization 'std::__bitset_partition_partial_blocks<std::_ClassicAlgPolicy, std::__less<void, void> &, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, double>' requested here
  605 |   std::__bitset_partition_partial_blocks<_AlgPolicy, _Compare>(
      |        ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:844:42: note: in instantiation of function template specialization 'std::__bitset_partition<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, std::__less<void, void> &>' requested here
  844 |                                   ? std::__bitset_partition<_AlgPolicy, _RandomAccessIterator, _Compare>(__first, __last, __comp)
      |                                          ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:929:8: note: in instantiation of function template specialization 'std::__introsort<std::_ClassicAlgPolicy, std::__less<void, void> &, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, false>' requested here
  929 |   std::__introsort<_AlgPolicy,
      |        ^
/tmp/stdBLAS/tests/native/iterator.cpp:334:25: note: in instantiation of function template specialization '(anonymous namespace)::testRotateSort<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' requested here
  334 |     const bool ok_col = testRotateSort(A_col0);
      |                         ^
In file included from /tmp/stdBLAS/tests/native/iterator.cpp:2:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/algorithm:1847:
In file included from /opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/nth_element.h:15:
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:489:9: error: no viable overloaded '-='
  489 |   __lm1 -= (__right_bitset == 0) ? __r_size : 0;
      |   ~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:663:40: error: invalid operands to binary expression ('(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' and '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>')
  663 |   bool __already_partitioned = __first >= __last;
      |                                ~~~~~~~ ^  ~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:845:42: note: in instantiation of function template specialization 'std::__partition_with_equals_on_right<std::_ClassicAlgPolicy, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, std::__less<void, void> &>' requested here
  845 |                                   : std::__partition_with_equals_on_right<_AlgPolicy, _RandomAccessIterator, _Compare>(
      |                                          ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__algorithm/sort.h:929:8: note: in instantiation of function template specialization 'std::__introsort<std::_ClassicAlgPolicy, std::__less<void, void> &, (anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>, false>' requested here
  929 |   std::__introsort<_AlgPolicy,
      |        ^
/tmp/stdBLAS/tests/native/iterator.cpp:334:25: note: in instantiation of function template specialization '(anonymous namespace)::testRotateSort<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' requested here
  334 |     const bool ok_col = testRotateSort(A_col0);
      |                         ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__system_error/error_condition.h:113:1: note: candidate function not viable: no known conversion from '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' to 'const error_condition' for 1st argument
  113 | operator<=>(const error_condition& __x, const error_condition& __y) noexcept {
      | ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__system_error/error_code.h:126:46: note: candidate function not viable: no known conversion from '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' to 'const error_code' for 1st argument
  126 | inline _LIBCPP_HIDE_FROM_ABI strong_ordering operator<=>(const error_code& __x, const error_code& __y) noexcept {
      |                                              ^           ~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__variant/monostate.h:32:56: note: candidate function not viable: no known conversion from '(anonymous namespace)::MdspanRandomAccessIterator<double, Kokkos::extents<unsigned long, 18446744073709551615>, Kokkos::layout_stride, Kokkos::default_accessor<double>>' to 'monostate' for 1st argument
   32 | _LIBCPP_HIDE_FROM_ABI inline constexpr strong_ordering operator<=>(monostate, monostate) noexcept {
      |                                                        ^           ~~~~~~~~~
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__utility/pair.h:524:1: note: candidate template ignored: could not match 'pair' against 'MdspanRandomAccessIterator'
  524 | operator<=>(const pair<_T1, _T2>& __x, const pair<_U1, _U2>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__utility/pair.h:524:1: note: candidate template ignored: could not match 'pair' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/reverse_iterator.h:255:1: note: candidate template ignored: could not match 'reverse_iterator' against 'MdspanRandomAccessIterator'
  255 | operator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/reverse_iterator.h:280:1: note: candidate template ignored: could not match 'reverse_iterator' against 'MdspanRandomAccessIterator'
  280 | operator<=>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/reverse_iterator.h:280:1: note: candidate template ignored: could not match 'reverse_iterator' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:489:35: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  489 | inline _LIBCPP_HIDE_FROM_ABI bool operator>=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {
      |                                   ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:498:5: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  498 |     operator<=>(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {
      |     ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:498:5: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:559:65: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  559 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 bool operator>=(const unique_ptr<_T1, _D1>& __x, nullptr_t) {
      |                                                                 ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:564:65: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  564 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 bool operator>=(nullptr_t, const unique_ptr<_T1, _D1>& __x) {
      |                                                                 ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:572:1: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
  572 | operator<=>(const unique_ptr<_T1, _D1>& __x, nullptr_t) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/unique_ptr.h:572:1: note: candidate template ignored: could not match 'unique_ptr' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:1143:39: note: candidate template ignored: could not match 'shared_ptr' against 'MdspanRandomAccessIterator'
 1143 | _LIBCPP_HIDE_FROM_ABI strong_ordering operator<=>(shared_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) noexcept {
      |                                       ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:1143:39: note: candidate template ignored: could not match 'shared_ptr' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:1214:39: note: candidate template ignored: could not match 'shared_ptr' against 'MdspanRandomAccessIterator'
 1214 | _LIBCPP_HIDE_FROM_ABI strong_ordering operator<=>(shared_ptr<_Tp> const& __x, nullptr_t) noexcept {
      |                                       ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__memory/shared_ptr.h:1214:39: note: candidate template ignored: could not match 'shared_ptr' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/tuple:1227:1: note: candidate template ignored: could not match 'tuple' against 'MdspanRandomAccessIterator'
 1227 | operator<=>(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/tuple:1227:1: note: candidate template ignored: could not match 'tuple' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/wrap_iter.h:156:1: note: candidate template ignored: could not match '__wrap_iter' against 'MdspanRandomAccessIterator'
  156 | operator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/wrap_iter.h:162:1: note: candidate template ignored: could not match '__wrap_iter' against 'MdspanRandomAccessIterator'
  162 | operator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string_view:712:38: note: candidate template ignored: could not match 'basic_string_view' against 'MdspanRandomAccessIterator'
  712 | _LIBCPP_HIDE_FROM_ABI constexpr auto operator<=>(basic_string_view<_CharT, _Traits> __lhs,
      |                                      ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string_view:712:38: note: candidate template ignored: could not match 'basic_string_view' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string:3749:38: note: candidate template ignored: could not match 'basic_string' against 'MdspanRandomAccessIterator'
 3749 | _LIBCPP_HIDE_FROM_ABI constexpr auto operator<=>(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
      |                                      ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string:3756:1: note: candidate template ignored: could not match 'basic_string' against 'MdspanRandomAccessIterator'
 3756 | operator<=>(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/string:3756:1: note: candidate template ignored: could not match 'basic_string' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1048:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1048 | operator>=(const optional<_Tp>& __x, const optional<_Up>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1060:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1060 | operator<=>(const optional<_Tp>& __x, const optional<_Up>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1060:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1134:49: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1134 | _LIBCPP_HIDE_FROM_ABI constexpr strong_ordering operator<=>(const optional<_Tp>& __x, nullopt_t) noexcept {
      |                                                 ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1134:49: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1225:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1225 | operator>=(const optional<_Tp>& __x, const _Up& __v) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1233:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1233 | operator>=(const _Tp& __v, const optional<_Up>& __x) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1242:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
 1242 | operator<=>(const optional<_Tp>& __x, const _Up& __v) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/optional:1242:1: note: candidate template ignored: could not match 'optional' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/move_iterator.h:288:1: note: candidate template ignored: could not match 'move_iterator' against 'MdspanRandomAccessIterator'
  288 | operator>=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/move_iterator.h:295:1: note: candidate template ignored: could not match 'move_iterator' against 'MdspanRandomAccessIterator'
  295 | operator<=>(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/__iterator/move_iterator.h:295:1: note: candidate template ignored: could not match 'move_iterator' against 'MdspanRandomAccessIterator'
/opt/homebrew/opt/llvm/bin/../include/c++/v1/deque:2545:1: note: candidate template ignored: could not match 'deque' against 'MdspanRandomAccessIterator'
 2545 | operator<=>(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/array:419:1: note: candidate template ignored: could not match 'array' against 'MdspanRandomAccessIterator'
  419 | operator<=>(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/vector:2897:1: note: candidate template ignored: could not match 'vector' against 'MdspanRandomAccessIterator'
 2897 | operator<=>(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/queue:489:35: note: candidate template ignored: could not match 'queue' against 'MdspanRandomAccessIterator'
  489 | inline _LIBCPP_HIDE_FROM_ABI bool operator>=(const queue<_Tp, _Container>& __x, const queue<_Tp, _Container>& __y) {
      |                                   ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/queue:502:1: note: candidate template ignored: could not match 'queue' against 'MdspanRandomAccessIterator'
  502 | operator<=>(const queue<_Tp, _Container>& __x, const queue<_Tp, _Container>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/stack:340:35: note: candidate template ignored: could not match 'stack' against 'MdspanRandomAccessIterator'
  340 | inline _LIBCPP_HIDE_FROM_ABI bool operator>=(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y) {
      |                                   ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/stack:353:1: note: candidate template ignored: could not match 'stack' against 'MdspanRandomAccessIterator'
  353 | operator<=>(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/variant:1465:1: note: candidate template ignored: could not match 'variant' against 'MdspanRandomAccessIterator'
 1465 | operator<=>(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/variant:1535:38: note: candidate template ignored: could not match 'variant' against 'MdspanRandomAccessIterator'
 1535 | _LIBCPP_HIDE_FROM_ABI constexpr bool operator>=(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) {
      |                                      ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/map:1625:1: note: candidate template ignored: could not match 'map' against 'MdspanRandomAccessIterator'
 1625 | operator<=>(const map<_Key, _Tp, _Compare, _Allocator>& __x, const map<_Key, _Tp, _Compare, _Allocator>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/map:2145:1: note: candidate template ignored: could not match 'multimap' against 'MdspanRandomAccessIterator'
 2145 | operator<=>(const multimap<_Key, _Tp, _Compare, _Allocator>& __x,
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/set:998:1: note: candidate template ignored: could not match 'set' against 'MdspanRandomAccessIterator'
  998 | operator<=>(const set<_Key, _Allocator>& __x, const set<_Key, _Allocator>& __y) {
      | ^
/opt/homebrew/opt/llvm/bin/../include/c++/v1/set:1458:1: note: candidate template ignored: could not match 'multiset' against 'MdspanRandomAccessIterator'
 1458 | operator<=>(const multiset<_Key, _Allocator>& __x, const multiset<_Key, _Allocator>& __y) {
      | ^
1 warning and 9 errors generated.
make[2]: *** [tests/native/CMakeFiles/iterator.dir/iterator.cpp.o] Error 1
make[2]: Target `tests/native/CMakeFiles/iterator.dir/build' not remade because of errors.
make[1]: *** [tests/native/CMakeFiles/iterator.dir/all] Error 2

@mhoemmen
Copy link
Contributor

We should probably delete that iterator.cpp file -- it's really old, and not something we really want to teach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants