From 494bfbb8a390c2fc1479d35a0bc327b5376c4aa7 Mon Sep 17 00:00:00 2001 From: Alfredo Correa Date: Thu, 21 Aug 2025 22:17:38 +0000 Subject: [PATCH 1/3] fix missing stride template argument for array iterator --- include/boost/multi/array_ref.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/boost/multi/array_ref.hpp b/include/boost/multi/array_ref.hpp index 66c02babf..127a536d3 100644 --- a/include/boost/multi/array_ref.hpp +++ b/include/boost/multi/array_ref.hpp @@ -486,10 +486,10 @@ struct array_iterator; template struct array_iterator // NOLINT(fuchsia-multiple-inheritance) for facades : boost::multi::iterator_facade< - array_iterator, void, std::random_access_iterator_tag, + array_iterator, void, std::random_access_iterator_tag, subarray const&, typename layout_t::difference_type> -, multi::decrementable> -, multi::incrementable> +, multi::decrementable > +, multi::incrementable > , multi::affine, multi::difference_type> , multi::totally_ordered2, void> { ~array_iterator() = default; // lints(cppcoreguidelines-special-member-functions,hicpp-special-member-functions) From 310a473d9d0223f650e7b19538280b543fa15f20 Mon Sep 17 00:00:00 2001 From: Alfredo Correa Date: Fri, 22 Aug 2025 00:45:47 +0000 Subject: [PATCH 2/3] remove no unique address for MSVC CUDA --- include/boost/multi/array_ref.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/multi/array_ref.hpp b/include/boost/multi/array_ref.hpp index 127a536d3..af75a6ce7 100644 --- a/include/boost/multi/array_ref.hpp +++ b/include/boost/multi/array_ref.hpp @@ -2487,7 +2487,7 @@ struct array_iterator // NOLINT(fuchs #pragma warning(push) #pragma warning(disable : 4820) // warning C4820: '7' bytes padding added after data member 'boost::multi::array_types::base_' [C:\Gitlab-Runner\builds\t3_1sV2uA\0\correaa\boost-multi\build\test\array_fancyref.cpp.x.vcxproj] #endif - BOOST_MULTI_NO_UNIQUE_ADDRESS + // BOOST_MULTI_NO_UNIQUE_ADDRESS, testing removing this for MSVC-CUDA on Windows stride_type stride_; #if defined(_MSC_VER) #pragma warning(pop) From 07ca686983ccd382bd567278cdd08e4bedcd16d0 Mon Sep 17 00:00:00 2001 From: Alfredo Correa Date: Fri, 22 Aug 2025 01:21:09 +0000 Subject: [PATCH 3/3] completely disable NO_UNIQUE_ADDRESS --- include/boost/multi/detail/config/NO_UNIQUE_ADDRESS.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/multi/detail/config/NO_UNIQUE_ADDRESS.hpp b/include/boost/multi/detail/config/NO_UNIQUE_ADDRESS.hpp index eac13d409..d77112240 100644 --- a/include/boost/multi/detail/config/NO_UNIQUE_ADDRESS.hpp +++ b/include/boost/multi/detail/config/NO_UNIQUE_ADDRESS.hpp @@ -10,7 +10,7 @@ #ifdef __has_cpp_attribute #if __has_cpp_attribute(no_unique_address) >= 201803L && !defined(__NVCC__) && !defined(__PGI) && (__cplusplus >= 202002L || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L)) // NOLINTNEXTLINE(cppcoreguidelines-macro-usage) this macro will be needed until C++20 - #define BOOST_MULTI_NO_UNIQUE_ADDRESS [[no_unique_address]] + #define BOOST_MULTI_NO_UNIQUE_ADDRESS // [[no_unique_address]] #endif #endif