kokkos / mdspan

Reference implementation of mdspan targeting C++23
Other
398 stars 65 forks source link

msvc 14 test_layout_stride compilation error #304

Open b8u opened 8 months ago

b8u commented 8 months ago

Hi!

I would like to pack the library (version 0.6.0, not from the master) by build2 (build2.org), but I have the following error (C2039):

"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64\cl" -IC:\tmp\build\mdspan-tests-0.6.0 -IC:\tmp\dist\mdspan-tests-0.6.0 -IC:\tmp\build\mdspan-0.6.0 -IC:\tmp\dist\mdspan-0.6.0 -IC:\tmp\build\gtest-1.11.0+1\include -DGTEST_LINKED_AS_SHARED_LIBRARY=1 -IC:\tmp\build\gtest-1.11.0+1\include -IC:\tmp\build\gtest-1.11.0+1\include /W3 /nologo /std:c++20 /Zc:__cplusplus /I "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\winrt" /utf-8 /EHsc /MD /Fo: mdspan-tests-0.6.0\mdspan-tests\test_layout_stride.exe.obj /c /TP C:\tmp\dist\mdspan-tests-0.6.0\mdspan-tests\test_layout_stride.cpp

.... MORE OUTPUT ....

"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64\link.exe" "/LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x64" /NOLOGO /MACHINE:x64 /INCREMENTAL:NO /DEFAULTLIB:shell32 /DEFAULTLIB:user32 /MANIFEST:EMBED /MANIFESTINPUT:mdspan-tests-0.6.0\mdspan-tests\test_mdspan_size.exe.manifest /IMPLIB:mdspan-tests-0.6.0\mdspan-tests\test_mdspan_size.exe.lib /OUT:mdspan-tests-0.6.0\mdspan-tests\test_mdspan_size.exe mdspan-tests-0.6.0\mdspan-tests\test_mdspan_size.exe.obj gtest-1.11.0+1\src\gtest.dll.lib /WHOLEARCHIVE:gtest-1.11.0+1\src\gtest_main.lib gtest-1.11.0+1\src\gtest.lib
C:\tmp\dist\mdspan-0.6.0\experimental\__p0009_bits\layout_stride.hpp(402): error C2039: '__no_unique_address_emulation<Kokkos::detail::__compressed_pair<Kokkos::extents<unsigned __int64,-1,-1>,Kokkos::detail::possibly_empty_array<unsigned __int64,2>,void>,0,void>': is not a member of 'Kokkos::layout_stride::mapping<Kokkos::extents<IndexType,18446744073709551615,18446744073709551615>>'
        with
        [
            IndexType=size_t
        ]
C:\tmp\dist\mdspan-0.6.0\mdspan\../experimental/__p0009_bits/mdspan.hpp(75): note: see declaration of 'Kokkos::layout_stride::mapping<Kokkos::extents<IndexType,18446744073709551615,18446744073709551615>>'
        with
        [
            IndexType=size_t
        ]
C:\tmp\dist\mdspan-0.6.0\experimental\__p0009_bits\layout_stride.hpp(398): note: while compiling class template member function 'const Kokkos::extents<IndexType,18446744073709551615,18446744073709551615> &Kokkos::layout_stride::mapping<Kokkos::extents<IndexType,18446744073709551615,18446744073709551615>>::extents(void) noexcept const'
        with
        [
            IndexType=size_t
        ]
C:\tmp\dist\mdspan-0.6.0\mdspan\../experimental/__p0009_bits/mdspan.hpp(87): note: see the first reference to 'Kokkos::layout_stride::mapping<Kokkos::extents<IndexType,18446744073709551615,18446744073709551615>>::extents' in 'Kokkos::mdspan<int,Kokkos::extents<IndexType,18446744073709551615,18446744073709551615>,Kokkos::layout_stride,Kokkos::default_accessor<ElementType>>::extent'
        with
        [
            IndexType=size_t
        ]
C:\tmp\dist\mdspan-tests-0.6.0\mdspan-tests\test_mdspan_ctors.cpp(146): note: see the first reference to 'Kokkos::mdspan<int,Kokkos::extents<IndexType,18446744073709551615,18446744073709551615>,Kokkos::layout_stride,Kokkos::default_accessor<ElementType>>::extent' in 'TestMdspanListInitializationLayoutStride_test_mdspan_list_initialization_layout_stride_Test::TestBody'
        with
        [
            IndexType=size_t,
            ElementType=int
        ]
C:\tmp\dist\mdspan-0.6.0\mdspan\../experimental/__p0009_bits/mdspan.hpp(371): note: see reference to class template instantiation 'Kokkos::layout_stride::mapping<Kokkos::extents<IndexType,18446744073709551615,18446744073709551615>>' being compiled
        with
        [
            IndexType=size_t
        ]
C:\tmp\dist\mdspan-0.6.0\experimental\__p0009_bits\layout_stride.hpp(402): note: see reference to variable template 'const bool is_empty_v<Kokkos::layout_stride::mapping<Kokkos::extents<unsigned __int64,-1,-1> > >' being compiled
C:\tmp\dist\mdspan-0.6.0\experimental\__p0009_bits\layout_stride.hpp(402): note: see reference to variable template 'const bool is_empty_v<Kokkos::detail::__compressed_pair<Kokkos::layout_stride::mapping<Kokkos::extents<unsigned __int64,-1,-1> >,Kokkos::default_accessor<int>,void> >' being compiled
C:\tmp\dist\mdspan-tests-0.6.0\mdspan-tests\test_mdspan_ctors.cpp(142): note: see reference to class template instantiation 'Kokkos::mdspan<int,Kokkos::extents<IndexType,18446744073709551615,18446744073709551615>,Kokkos::layout_stride,Kokkos::default_accessor<ElementType>>' being compiled
        with
        [
            IndexType=size_t,
            ElementType=int
        ]

I'm not sure is it an error of the library, but I have not find any configuration for msvc in CMakeLists.txt (my script works fine with gcc/clang).