, value(std::move(v))
{}
- std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
+ VULKAN_HPP_DEPRECATED(
+ "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
+ std::tuple<Result, UniqueHandle<Type, Dispatch>>
+ asTuple() &
{
return std::make_tuple( result, std::move( value ) );
}
- Result result;
+ std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &&
+ {
+ return std::make_tuple( result, std::move( value ) );
+ }
+
+ Result result;
UniqueHandle<Type, Dispatch> value;
};
, value( std::move( v ) )
{}
- std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple()
+ VULKAN_HPP_DEPRECATED(
+ "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
+ std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>>
+ asTuple() &
+ {
+ return std::make_tuple( result, std::move( value ) );
+ }
+
+ std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &&
{
return std::make_tuple( result, std::move( value ) );
}
);
// create a GraphicsPipeline
+ vk::ResultValue<vk::UniquePipeline> rv = device->createGraphicsPipelineUnique( *pipelineCache, graphicsPipelineCreateInfo );
+#if 17 <= VULKAN_HPP_CPP_VERSION
+ auto [r, v] = std::move( rv );
+#endif
+ // auto trv = rv.asTuple(); // asTuple() on an l-value is deprecated !!
+ auto trv1 = std::move( rv ).asTuple();
+
vk::UniquePipeline graphicsPipeline = device->createGraphicsPipelineUnique( *pipelineCache, graphicsPipelineCreateInfo ).value;
vk::UniquePipeline graphicsPipeline2 =
{
}
- std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
+ VULKAN_HPP_DEPRECATED(
+ "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
+
+ std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &
+ {
+ return std::make_tuple( result, std::move( value ) );
+ }
+
+ std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple() &&
{
return std::make_tuple( result, std::move( value ) );
}
{
}
- std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple()
+ VULKAN_HPP_DEPRECATED(
+ "asTuple() on an l-value is deprecated, as it implicitly moves the UniqueHandle out of the ResultValue. Use asTuple() on an r-value instead, requiring to explicitly move the UniqueHandle." )
+
+ std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &
+ {
+ return std::make_tuple( result, std::move( value ) );
+ }
+
+ std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple() &&
{
return std::make_tuple( result, std::move( value ) );
}