From 982329314a4cee5a8687e4948463b0d5dd396942 Mon Sep 17 00:00:00 2001 From: Eyal Rozenberg Date: Mon, 17 Apr 2023 01:43:26 +0300 Subject: [PATCH] Fixes #494: Avoid using library functionality with variadic template-template parameters when compiling with MSVC --- .../vectorAddMMAP/vectorAddMMAP.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/examples/modified_cuda_samples/vectorAddMMAP/vectorAddMMAP.cpp b/examples/modified_cuda_samples/vectorAddMMAP/vectorAddMMAP.cpp index a35249aa..ac971cd4 100644 --- a/examples/modified_cuda_samples/vectorAddMMAP/vectorAddMMAP.cpp +++ b/examples/modified_cuda_samples/vectorAddMMAP/vectorAddMMAP.cpp @@ -160,8 +160,17 @@ setup_virtual_memory(cuda::size_t desired_region_size, } ); +#ifndef _MSC_VER virtual_mem::set_access_mode(reserved_range.region(), mapping_devices, cuda::memory::access_permissions_t::read_and_write()); +#else + // MSVC, at least as of 2019, can't handle template-template parameters with variadcs properly; + // so let's go manual: + for(const auto& mapping_device : mapping_devices) { + virtual_mem::set_access_mode(reserved_range.region(), mapping_device, + cuda::memory::access_permissions_t::read_and_write()); + } +#endif return { std::move(reserved_range), std::move(mappings) }; }