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 {