Skip to content

v3.3.0 C++ module: UniqueHandleTraits template specialisation declarations need to be guarded #71

@sharadhr

Description

@sharadhr

Output on my local machine:

  [15/16] Building CXX object CMakeFiles\VulkanMemoryAllocatorHppModule.dir\Release\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm.obj
  FAILED: CMakeFiles/VulkanMemoryAllocatorHppModule.dir/Release/out/vcpkg_installed/x64-windows-static-md/include/vk_mem_alloc.cppm.obj CMakeFiles/VulkanMemoryAllocatorHppModule.dir/Release/vk_mem_alloc.ifc 
  C:\PROGRA~1\MIB055~1\18\ENTERP~1\VC\Tools\MSVC\1450~1.357\bin\Hostx64\x64\cl.exe  /nologo /TP -DVULKAN_HPP_NO_EXCEPTIONS -DVULKAN_HPP_NO_SMART_HANDLE -DVULKAN_HPP_NO_STRUCT_CONSTRUCTORS -DCMAKE_INTDIR=\"Release\" -external:IR:\caldera\out\vcpkg_installed\x64-windows-static-md\include -external:IR:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vma -external:IR:\caldera\out\vcpkg_installed\x64-windows-static-md\debug\include -external:W0 /sdl /guard:cf /utf-8 /diagnostics:caret /w14165 /w44242 /w44254 /w44263 /w34265 /w34287 /w44296 /w44365 /w44388 /w44464 /w14545 /w14546 /w14547 /w14549 /w14555 /w34619 /w34640 /w24826 /w14905 /w14906 /w14928 /w45038 /wd4324 /W4 /permissive- /volatile:iso /Zc:inline /Zc:preprocessor /Zc:enumTypes /Zc:lambda /Zc:__cplusplus /Zc:externConstexpr /Zc:throwingNew /Zf /EHsc /DWIN32 /D_WINDOWS /EHsc /GL /Gw /Gy /O2 /Ob2 /DNDEBUG -std:c++latest -MD -Zi /showIncludes @CMakeFiles\VulkanMemoryAllocatorHppModule.dir\Release\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm.obj.modmap /FoCMakeFiles\VulkanMemoryAllocatorHppModule.dir\Release\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm.obj /FdCMakeFiles\VulkanMemoryAllocatorHppModule.dir\Release\VulkanMemoryAllocatorHppModule.pdb /FS -c R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm
  vk_mem_alloc.cppm
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(120,38): error C3856: 'UniqueHandleTraits': symbol is not a class template
    template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Allocator, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                                       ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(120,58): error C2143: syntax error: missing ';' before 'vma::Allocator'
    template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Allocator, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                                                           ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(120,20): error C2913: explicit specialization; 'vk::UniqueHandleTraits' is not a specialization of a class template
    template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Allocator, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                     ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(120,67): error C2059: syntax error: ','
    template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Allocator, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                                                                    ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(121,20): error C2913: explicit specialization; 'vk::UniqueHandleTraits' is not a specialization of a class template
    template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Pool, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                     ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(122,20): error C2913: explicit specialization; 'vk::UniqueHandleTraits' is not a specialization of a class template
    template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Allocation, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                     ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(123,20): error C2913: explicit specialization; 'vk::UniqueHandleTraits' is not a specialization of a class template
    template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::VirtualAllocation, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                     ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(124,20): error C2913: explicit specialization; 'vk::UniqueHandleTraits' is not a specialization of a class template
    template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::VirtualBlock, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                     ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(125,20): error C2913: explicit specialization; 'vk::UniqueHandleTraits' is not a specialization of a class template
    template<> class UniqueHandleTraits<Buffer, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                     ^
R:\caldera\out\vcpkg_installed\x64-windows-static-md\include\vk_mem_alloc.cppm(126,20): error C2913: explicit specialization; 'vk::UniqueHandleTraits' is not a specialization of a class template
    template<> class UniqueHandleTraits<Image, VMA_HPP_NAMESPACE::detail::Dispatcher>;
                     ^
  ninja: build stopped: subcommand failed.

Rebuild failed.

I suspect the following lines

template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Allocator, VMA_HPP_NAMESPACE::detail::Dispatcher>;
template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Pool, VMA_HPP_NAMESPACE::detail::Dispatcher>;
template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::Allocation, VMA_HPP_NAMESPACE::detail::Dispatcher>;
template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::VirtualAllocation, VMA_HPP_NAMESPACE::detail::Dispatcher>;
template<> class UniqueHandleTraits<VMA_HPP_NAMESPACE::VirtualBlock, VMA_HPP_NAMESPACE::detail::Dispatcher>;
template<> class UniqueHandleTraits<Buffer, VMA_HPP_NAMESPACE::detail::Dispatcher>;
template<> class UniqueHandleTraits<Image, VMA_HPP_NAMESPACE::detail::Dispatcher>;
have to be guarded behind #if !defined(VULKAN_HPP_NO_SMART_HANDLE), which blocks the definitions of vk::UniqueHandle.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions