I think the fixes in #49 now causes incompatibility with the old vulkan 1.2 headers. Now you get when you compile.
error: cannot decompose inaccessible member ‘vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>::m_value’ of ‘vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>’
More specifically, it appears that at least on Ubuntu 20.04, the Vulkan headers being installed look like
This is important because if you then do not define VULKAN_HPP_NO_EXCEPTIONS which by default is not defined, the contained type, which in this case is UniqueHandle would directly be forwarded, causing the structured binding breakage.
I think the fixes in #49 now causes incompatibility with the old vulkan 1.2 headers. Now you get when you compile.
More specifically, it appears that at least on Ubuntu 20.04, the Vulkan headers being installed look like
which returns
ResultValueType
instead of justResultValue
, which looks likeThis is important because if you then do not define
VULKAN_HPP_NO_EXCEPTIONS
which by default is not defined, the contained type, which in this case isUniqueHandle
would directly be forwarded, causing the structured binding breakage.Given that structured binding for called results have not been used anywhere else in vku, I would say the assumption of the project is that
VULKAN_HPP_NO_EXCEPTIONS
is not defined, so I think the change made in https://github.com/tomix1024/Vookoo/blob/2b0f8f218b634e43b976408968a440bf63e3bc8a/include/vku/vku.hpp#L1333 and https://github.com/tomix1024/Vookoo/blob/2b0f8f218b634e43b976408968a440bf63e3bc8a/include/vku/vku.hpp#L1041 should be reverted to be in line with all the other return call handles.