KhronosGroup / Vulkan-Hpp

Open-Source Vulkan C++ API
Apache License 2.0
3.13k stars 308 forks source link

Compilation errors of Instance*, ArrayProxy & DesignatedInitializers samples #844

Closed khadoran closed 3 years ago

khadoran commented 3 years ago

Checked out version: 4ec5b4a cmake version: 3.17.2 gcc version: 9.3.1

As compilation treats warnings as errors, I encounter the following problems compiling the samples:

Some samples (Instance* and ArrayProxy) define EngineName and AppName but don't use them (triggering -Werror=unused-variable)

--

ArrayProxy does not compile for std::initializer_list generating these errors (multiple encountered, only one shown as an example):

In file included from Vulkan-Hpp/tests/ArrayProxy/ArrayProxy.cpp:18: Vulkan-Hpp/vulkan/vulkan.hpp: In instantiation of 'vk::ArrayProxy::ArrayProxy(const std::initializer_list<_Tp>&) [with T = const int]': Vulkan-Hpp/tests/ArrayProxy/ArrayProxy.cpp:119:18: required from here Vulkan-Hpp/vulkan/vulkan.hpp:257:29: error: initializing 'vk::ArrayProxy::m_ptr' from 'std::initializer_list::begin' does not extend the lifetime of the underlying array [-Werror=init-list-lifetime] 257 | , m_ptr( list.begin() ) | ^

--

In DesginatedInitializers, variables ai1, ai2, ai3, ai4, ai5, ai6 are not used, resulting in errors and -Werror=deprecated-copy is triggered multiple times in vulkan/vulkan.hpp (lines 17591, 17595, 17600, 26288). This is the g++ output for the first line:

In file included from Vulkan-Hpp/tests/DesignatedInitializers/DesignatedInitializers.cpp:20: Vulkan-Hpp/vulkan/vulkan.hpp: In constructor 'vk::AccelerationStructureGeometryDataKHR::AccelerationStructureGeometryDataKHR(vk::AccelerationStructureGeometryTrianglesDataKHR)': Vulkan-Hpp/vulkan/vulkan.hpp:17591:31: error: implicitly-declared 'vk::AccelerationStructureGeometryTrianglesDataKHR::AccelerationStructureGeometryTrianglesDataKHR(const vk::AccelerationStructureGeometryTrianglesDataKHR&)' is deprecated [-Werror=deprecated-copy] 17591 | : triangles( triangles_ ) | ^ Vulkan-Hpp/vulkan/vulkan.hpp:17317:7: note: because ‘vk::AccelerationStructureGeometryTrianglesDataKHR’ has user-provided ‘vk::AccelerationStructureGeometryTrianglesDataKHR& vk::AccelerationStructureGeometryTrianglesDataKHR::operator=(const vk::AccelerationStructureGeometryTrianglesDataKHR&)’ 17317 | operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT | ^~~~

asuessenbach commented 3 years ago

Resolved by #845.