From fac74444facabb974f5a6e40ea88649d76cae139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20S=C3=BC=C3=9Fenbach?= Date: Thu, 7 Jul 2022 11:41:43 +0200 Subject: [PATCH] Extend check for function pointers on creating compare operators of structs. (#1348) --- VulkanHppGenerator.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp index 57b3aa5..13c6f35 100644 --- a/VulkanHppGenerator.cpp +++ b/VulkanHppGenerator.cpp @@ -9050,20 +9050,22 @@ std::string VulkanHppGenerator::generateStructCompareOperators( std::pair( ${name} const & rhs ) const VULKAN_HPP_NOEXCEPT + if ( !containsFuncPointer( structData.first ) ) + { + static const std::string spaceshipOperatorTemplate = + R"( ${ordering} operator<=>( ${name} const & rhs ) const VULKAN_HPP_NOEXCEPT { ${spaceshipMembers} return ${ordering}::equivalent; })"; - spaceshipOperatorIf = "#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)"; - spaceshipOperator = - replaceWithMap( spaceshipOperatorTemplate, { { "name", structName }, { "ordering", spaceshipOrdering }, { "spaceshipMembers", spaceshipMembers } } ); - spaceshipOperatorElse = "#endif\n"; - spaceshipOperatorEndif = ""; + spaceshipOperatorIf = "#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)"; + spaceshipOperator = + replaceWithMap( spaceshipOperatorTemplate, { { "name", structName }, { "ordering", spaceshipOrdering }, { "spaceshipMembers", spaceshipMembers } } ); + spaceshipOperatorElse = "#endif\n"; + spaceshipOperatorEndif = ""; + } } else {