}
}
};
+ // interupt the VULKAN_HPP_NAMESPACE for a moment to add specializations of std::tuple_size and std::tuple_element for the StructureChain!
+}
+
+namespace std
+{
+ template <typename... Elements>
+ struct tuple_size<VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
+ {
+ static constexpr size_t value = std::tuple_size<std::tuple<Elements...>>::value;
+ };
+
+ template <std::size_t Index, typename... Elements>
+ struct tuple_element<Index, VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
+ {
+ using type = typename std::tuple_element<Index, std::tuple<Elements...>>::type;
+ };
+} // namespace std
+
+namespace VULKAN_HPP_NAMESPACE
+{
vk::PhysicalDevicePushDescriptorPropertiesKHR>
sc7;
-#if !defined(NDEBUG)
+#if ( 17 <= VULKAN_HPP_CPP_VERSION )
+ // test for structured binding from a StructureChain
+ auto const & [p0, p1] = sc1;
+ auto & [p2, p3] = sc2;
+#endif
+
+#if !defined( NDEBUG )
void * pNext = sc7.get<vk::PhysicalDeviceIDProperties>().pNext;
#endif
sc7.assign<vk::PhysicalDeviceIDProperties>( {} );
assert( pNext == sc7.get<vk::PhysicalDeviceIDProperties>().pNext );
-#if !defined(NDEBUG)
+#if !defined( NDEBUG )
void * pNext1 = sc7.get<vk::PhysicalDeviceMaintenance3Properties>().pNext;
#endif
sc7.assign<vk::PhysicalDeviceMaintenance3Properties>( {} ).assign<vk::PhysicalDeviceIDProperties>( {} );
}
};
+ // interupt the VULKAN_HPP_NAMESPACE for a moment to add specializations of std::tuple_size and std::tuple_element for the StructureChain!
+}
+
+namespace std
+{
+ template <typename... Elements>
+ struct tuple_size<VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
+ {
+ static constexpr size_t value = std::tuple_size<std::tuple<Elements...>>::value;
+ };
+
+ template <std::size_t Index, typename... Elements>
+ struct tuple_element<Index, VULKAN_HPP_NAMESPACE::StructureChain<Elements...>>
+ {
+ using type = typename std::tuple_element<Index, std::tuple<Elements...>>::type;
+ };
+} // namespace std
+
+namespace VULKAN_HPP_NAMESPACE
+{
+
# if !defined( VULKAN_HPP_NO_SMART_HANDLE )
template <typename Type, typename Dispatch>
class UniqueHandleTraits;