std::unary_function is not available in libcxx under C++17, see: https://en.cppreference.com/w/cpp/utility/functional/unary_function Boost uses std::unary_function, but it has a workaround for using Boost headers in C++17, triggered by the macro BOOST_NO_CXX98_FUNCTION_BASE
A new assert in libcxx is triggered in include/varlen_sort.h
std::iterator_traits::reference should match the return type of varlen_iterator::operator*()
include/c++/v1/algorithm/iterator_operations.h:100:5: error: static assertion failed due to requirement 'is_same<varlen_element, varlen_element &>::value': It looks like your iterator's iterator_traits<It>::reference does not match the return type of dereferencing the iterator, i.e., calling *it. This is undefined behavior according to [input.iterators] and can lead to dangling reference issues at runtime, so we are flagging this. static_assert(is_same<__deref_t<_Iter>, typename iterator_traits<remove_cvref_t<_Iter> >::reference>::value,
^ ~~~~~~~~~~~~~~~~~~~
Fix a few warnings:
Remove some explicitly defined "=defau.t" constructors, destructors. warning: definition of implicit copy assignment operator for 'Row' is deprecated because it has a user-declared destructor [-Wdeprecated-copy-with-dtor]
Mark a variable potentially unuses in tests (unuses when aarch64)
Fixing two compile errors, that are triggered when using libcxx from LLVM15
https://reviews.llvm.org/D104002
std::unary_function is not available in libcxx under C++17, see: https://en.cppreference.com/w/cpp/utility/functional/unary_function Boost uses std::unary_function, but it has a workaround for using Boost headers in C++17, triggered by the macro BOOST_NO_CXX98_FUNCTION_BASE
See: https://www.boost.org/doc/libs/master/libs/config/doc/html/boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_features_that_have_been_removed_from_the_standard_
https://reviews.llvm.org/D130538
A new assert in libcxx is triggered in include/varlen_sort.h
std::iterator_traits::reference should match the return type of varlen_iterator::operator*()
include/c++/v1/algorithm/iterator_operations.h:100:5: error: static assertion failed due to requirement 'is_same<varlen_element, varlen_element &>::value': It looks like your iterator's
iterator_traits<It>::reference
does not match the return type of dereferencing the iterator, i.e., calling*it
. This is undefined behavior according to [input.iterators] and can lead to dangling reference issues at runtime, so we are flagging this. static_assert(is_same<__deref_t<_Iter>, typename iterator_traits<remove_cvref_t<_Iter> >::reference>::value, ^~~~~~~~~~~~~~~~~~~~Fix a few warnings: Remove some explicitly defined "=defau.t" constructors, destructors. warning: definition of implicit copy assignment operator for 'Row' is deprecated because it has a user-declared destructor [-Wdeprecated-copy-with-dtor]
Mark a variable potentially unuses in tests (unuses when aarch64)
Change-Id: Iad346bd0cdb1d25d958377b9c7a0dd5da7a45fad