From 46a80d0a0780679d022943b64c9301fd96a1c702 Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Tue, 29 Sep 2020 13:48:24 +0200 Subject: [PATCH] Fix clang 10 related compile time issues --- VulkanHppGenerator.cpp | 34 +++++++++++++++++----------------- vulkan/vulkan.hpp | 37 ++++++++++++++++++++----------------- 2 files changed, 37 insertions(+), 34 deletions(-) diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp index c9203f7..5d3c036 100644 --- a/VulkanHppGenerator.cpp +++ b/VulkanHppGenerator.cpp @@ -7764,37 +7764,37 @@ int main( int argc, char ** argv ) template VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags > bit; + return flags.operator>( bit ); } template VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags >= bit; + return flags.operator>=( bit ); } template VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags < bit; + return flags.operator<( bit ); } template VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags <= bit; + return flags.operator<=(bit); } template VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags == bit; + return flags.operator==( bit ); } template VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags != bit; + return flags.operator!=( bit ); } #endif @@ -7802,19 +7802,19 @@ int main( int argc, char ** argv ) template VULKAN_HPP_CONSTEXPR Flags operator&(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags & bit; + return flags.operator&( bit ); } template VULKAN_HPP_CONSTEXPR Flags operator|(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags | bit; + return flags.operator|( bit ); } template VULKAN_HPP_CONSTEXPR Flags operator^(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT { - return flags ^ bit; + return flags.operator^( bit ); } )"; @@ -8061,13 +8061,13 @@ int main( int argc, char ** argv ) template T & get() VULKAN_HPP_NOEXCEPT { - return std::get::value>( *this ); + return std::get::value>( static_cast&>( *this ) ); } template T const & get() const VULKAN_HPP_NOEXCEPT { - return std::get::value>( *this ); + return std::get::value>( static_cast&>( *this ) ); } template @@ -8093,7 +8093,7 @@ int main( int argc, char ** argv ) auto pNext = reinterpret_cast( &get() ); VULKAN_HPP_ASSERT( !isLinked( pNext ) ); - auto & headElement = std::get<0>( *this ); + auto & headElement = std::get<0>( static_cast&>( *this ) ); pNext->pNext = reinterpret_cast(headElement.pNext); headElement.pNext = pNext; } @@ -8144,7 +8144,7 @@ int main( int argc, char ** argv ) bool isLinked( VkBaseInStructure const * pNext ) { - VkBaseInStructure const * elementPtr = reinterpret_cast(&std::get<0>( *this )); + VkBaseInStructure const * elementPtr = reinterpret_cast(&std::get<0>( static_cast&>( *this ) ) ); while ( elementPtr ) { if ( elementPtr->pNext == pNext ) @@ -8159,8 +8159,8 @@ int main( int argc, char ** argv ) template typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT { - auto & x = std::get( *this ); - x.pNext = &std::get( *this ); + auto & x = std::get( static_cast&>( *this ) ); + x.pNext = &std::get( static_cast&>( *this ) ); link(); } @@ -8171,7 +8171,7 @@ int main( int argc, char ** argv ) template typename std::enable_if::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT { - auto & element = std::get( *this ); + auto & element = std::get( static_cast&>( *this ) ); if ( element.pNext == pNext ) { element.pNext = pNext->pNext; @@ -8185,7 +8185,7 @@ int main( int argc, char ** argv ) template typename std::enable_if::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT { - auto & element = std::get<0>( *this ); + auto & element = std::get<0>( static_cast&>( *this ) ); if ( element.pNext == pNext ) { element.pNext = pNext->pNext; diff --git a/vulkan/vulkan.hpp b/vulkan/vulkan.hpp index 04f3f50..d6e1589 100644 --- a/vulkan/vulkan.hpp +++ b/vulkan/vulkan.hpp @@ -768,37 +768,37 @@ namespace VULKAN_HPP_NAMESPACE template VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags > bit; + return flags.operator>( bit ); } template VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags >= bit; + return flags.operator>=( bit ); } template VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags < bit; + return flags.operator<( bit ); } template VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags <= bit; + return flags.operator<=( bit ); } template VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags == bit; + return flags.operator==( bit ); } template VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags != bit; + return flags.operator!=( bit ); } #endif @@ -806,19 +806,19 @@ namespace VULKAN_HPP_NAMESPACE template VULKAN_HPP_CONSTEXPR Flags operator&( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags & bit; + return flags.operator&( bit ); } template VULKAN_HPP_CONSTEXPR Flags operator|( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags | bit; + return flags.operator|( bit ); } template VULKAN_HPP_CONSTEXPR Flags operator^( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags ^ bit; + return flags.operator^( bit ); } template @@ -952,13 +952,15 @@ namespace VULKAN_HPP_NAMESPACE template T & get() VULKAN_HPP_NOEXCEPT { - return std::get::value>( *this ); + return std::get::value>( + static_cast &>( *this ) ); } template T const & get() const VULKAN_HPP_NOEXCEPT { - return std::get::value>( *this ); + return std::get::value>( + static_cast &>( *this ) ); } template @@ -985,7 +987,7 @@ namespace VULKAN_HPP_NAMESPACE auto pNext = reinterpret_cast( &get() ); VULKAN_HPP_ASSERT( !isLinked( pNext ) ); - auto & headElement = std::get<0>( *this ); + auto & headElement = std::get<0>( static_cast &>( *this ) ); pNext->pNext = reinterpret_cast( headElement.pNext ); headElement.pNext = pNext; } @@ -1038,7 +1040,8 @@ namespace VULKAN_HPP_NAMESPACE bool isLinked( VkBaseInStructure const * pNext ) { - VkBaseInStructure const * elementPtr = reinterpret_cast( &std::get<0>( *this ) ); + VkBaseInStructure const * elementPtr = reinterpret_cast( + &std::get<0>( static_cast &>( *this ) ) ); while ( elementPtr ) { if ( elementPtr->pNext == pNext ) @@ -1053,8 +1056,8 @@ namespace VULKAN_HPP_NAMESPACE template typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT { - auto & x = std::get( *this ); - x.pNext = &std::get( *this ); + auto & x = std::get( static_cast &>( *this ) ); + x.pNext = &std::get( static_cast &>( *this ) ); link(); } @@ -1065,7 +1068,7 @@ namespace VULKAN_HPP_NAMESPACE template typename std::enable_if::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT { - auto & element = std::get( *this ); + auto & element = std::get( static_cast &>( *this ) ); if ( element.pNext == pNext ) { element.pNext = pNext->pNext; @@ -1079,7 +1082,7 @@ namespace VULKAN_HPP_NAMESPACE template typename std::enable_if::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT { - auto & element = std::get<0>( *this ); + auto & element = std::get<0>( static_cast &>( *this ) ); if ( element.pNext == pNext ) { element.pNext = pNext->pNext;