Use constexpr on simple class constructors. (#195)

This commit is contained in:
Andreas Süßenbach 2018-03-12 14:39:06 +01:00 committed by Markus Tavenrath
parent 65223fa8a9
commit 141e8ce93b
2 changed files with 93 additions and 78 deletions

View File

@ -36,6 +36,14 @@ namespace VULKAN_HPP_NAMESPACE
{ {
)"; )";
const std::string constExprHeader = R"(
#if defined(_MSC_VER) && (_MSC_VER <= 1800)
# define VULKAN_HPP_CONSTEXPR
#else
# define VULKAN_HPP_CONSTEXPR constexpr
#endif
)";
const std::string exceptionHeader = R"( const std::string exceptionHeader = R"(
#if defined(_MSC_VER) && (_MSC_VER == 1800) #if defined(_MSC_VER) && (_MSC_VER == 1800)
# define noexcept _NOEXCEPT # define noexcept _NOEXCEPT
@ -130,7 +138,7 @@ const std::string flagsHeader = R"(
class Flags class Flags
{ {
public: public:
Flags() VULKAN_HPP_CONSTEXPR Flags()
: m_mask(0) : m_mask(0)
{ {
} }
@ -275,7 +283,7 @@ const std::string arrayProxyHeader = R"(
class ArrayProxy class ArrayProxy
{ {
public: public:
ArrayProxy(std::nullptr_t) VULKAN_HPP_CONSTEXPR ArrayProxy(std::nullptr_t)
: m_count(0) : m_count(0)
, m_ptr(nullptr) , m_ptr(nullptr)
{} {}
@ -4331,11 +4339,11 @@ void VulkanHppGenerator::writeTypeHandle(std::ostream & os, DependencyData const
R"( class ${className} R"( class ${className}
{ {
public: public:
${className}() VULKAN_HPP_CONSTEXPR ${className}()
: m_${memberName}(VK_NULL_HANDLE) : m_${memberName}(VK_NULL_HANDLE)
{} {}
${className}( std::nullptr_t ) VULKAN_HPP_CONSTEXPR ${className}( std::nullptr_t )
: m_${memberName}(VK_NULL_HANDLE) : m_${memberName}(VK_NULL_HANDLE)
{} {}
@ -5010,6 +5018,7 @@ int main( int argc, char **argv )
ofs << versionCheckHeader ofs << versionCheckHeader
<< inlineHeader << inlineHeader
<< explicitHeader << explicitHeader
<< constExprHeader
<< std::endl << std::endl
<< vkNamespace << vkNamespace
<< flagsHeader << flagsHeader

View File

@ -85,6 +85,12 @@ static_assert( VK_HEADER_VERSION == 70 , "Wrong VK_HEADER_VERSION!" );
# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
#endif #endif
#if defined(_MSC_VER) && (_MSC_VER <= 1800)
# define VULKAN_HPP_CONSTEXPR
#else
# define VULKAN_HPP_CONSTEXPR constexpr
#endif
#if !defined(VULKAN_HPP_NAMESPACE) #if !defined(VULKAN_HPP_NAMESPACE)
#define VULKAN_HPP_NAMESPACE vk #define VULKAN_HPP_NAMESPACE vk
@ -106,7 +112,7 @@ namespace VULKAN_HPP_NAMESPACE
class Flags class Flags
{ {
public: public:
Flags() VULKAN_HPP_CONSTEXPR Flags()
: m_mask(0) : m_mask(0)
{ {
} }
@ -247,7 +253,7 @@ namespace VULKAN_HPP_NAMESPACE
class ArrayProxy class ArrayProxy
{ {
public: public:
ArrayProxy(std::nullptr_t) VULKAN_HPP_CONSTEXPR ArrayProxy(std::nullptr_t)
: m_count(0) : m_count(0)
, m_ptr(nullptr) , m_ptr(nullptr)
{} {}
@ -2643,11 +2649,11 @@ public:
class DeviceMemory class DeviceMemory
{ {
public: public:
DeviceMemory() VULKAN_HPP_CONSTEXPR DeviceMemory()
: m_deviceMemory(VK_NULL_HANDLE) : m_deviceMemory(VK_NULL_HANDLE)
{} {}
DeviceMemory( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t )
: m_deviceMemory(VK_NULL_HANDLE) : m_deviceMemory(VK_NULL_HANDLE)
{} {}
@ -2710,11 +2716,11 @@ public:
class CommandPool class CommandPool
{ {
public: public:
CommandPool() VULKAN_HPP_CONSTEXPR CommandPool()
: m_commandPool(VK_NULL_HANDLE) : m_commandPool(VK_NULL_HANDLE)
{} {}
CommandPool( std::nullptr_t ) VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t )
: m_commandPool(VK_NULL_HANDLE) : m_commandPool(VK_NULL_HANDLE)
{} {}
@ -2777,11 +2783,11 @@ public:
class Buffer class Buffer
{ {
public: public:
Buffer() VULKAN_HPP_CONSTEXPR Buffer()
: m_buffer(VK_NULL_HANDLE) : m_buffer(VK_NULL_HANDLE)
{} {}
Buffer( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t )
: m_buffer(VK_NULL_HANDLE) : m_buffer(VK_NULL_HANDLE)
{} {}
@ -2844,11 +2850,11 @@ public:
class BufferView class BufferView
{ {
public: public:
BufferView() VULKAN_HPP_CONSTEXPR BufferView()
: m_bufferView(VK_NULL_HANDLE) : m_bufferView(VK_NULL_HANDLE)
{} {}
BufferView( std::nullptr_t ) VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t )
: m_bufferView(VK_NULL_HANDLE) : m_bufferView(VK_NULL_HANDLE)
{} {}
@ -2911,11 +2917,11 @@ public:
class Image class Image
{ {
public: public:
Image() VULKAN_HPP_CONSTEXPR Image()
: m_image(VK_NULL_HANDLE) : m_image(VK_NULL_HANDLE)
{} {}
Image( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Image( std::nullptr_t )
: m_image(VK_NULL_HANDLE) : m_image(VK_NULL_HANDLE)
{} {}
@ -2978,11 +2984,11 @@ public:
class ImageView class ImageView
{ {
public: public:
ImageView() VULKAN_HPP_CONSTEXPR ImageView()
: m_imageView(VK_NULL_HANDLE) : m_imageView(VK_NULL_HANDLE)
{} {}
ImageView( std::nullptr_t ) VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t )
: m_imageView(VK_NULL_HANDLE) : m_imageView(VK_NULL_HANDLE)
{} {}
@ -3045,11 +3051,11 @@ public:
class ShaderModule class ShaderModule
{ {
public: public:
ShaderModule() VULKAN_HPP_CONSTEXPR ShaderModule()
: m_shaderModule(VK_NULL_HANDLE) : m_shaderModule(VK_NULL_HANDLE)
{} {}
ShaderModule( std::nullptr_t ) VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t )
: m_shaderModule(VK_NULL_HANDLE) : m_shaderModule(VK_NULL_HANDLE)
{} {}
@ -3112,11 +3118,11 @@ public:
class Pipeline class Pipeline
{ {
public: public:
Pipeline() VULKAN_HPP_CONSTEXPR Pipeline()
: m_pipeline(VK_NULL_HANDLE) : m_pipeline(VK_NULL_HANDLE)
{} {}
Pipeline( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t )
: m_pipeline(VK_NULL_HANDLE) : m_pipeline(VK_NULL_HANDLE)
{} {}
@ -3179,11 +3185,11 @@ public:
class PipelineLayout class PipelineLayout
{ {
public: public:
PipelineLayout() VULKAN_HPP_CONSTEXPR PipelineLayout()
: m_pipelineLayout(VK_NULL_HANDLE) : m_pipelineLayout(VK_NULL_HANDLE)
{} {}
PipelineLayout( std::nullptr_t ) VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t )
: m_pipelineLayout(VK_NULL_HANDLE) : m_pipelineLayout(VK_NULL_HANDLE)
{} {}
@ -3246,11 +3252,11 @@ public:
class Sampler class Sampler
{ {
public: public:
Sampler() VULKAN_HPP_CONSTEXPR Sampler()
: m_sampler(VK_NULL_HANDLE) : m_sampler(VK_NULL_HANDLE)
{} {}
Sampler( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t )
: m_sampler(VK_NULL_HANDLE) : m_sampler(VK_NULL_HANDLE)
{} {}
@ -3313,11 +3319,11 @@ public:
class DescriptorSet class DescriptorSet
{ {
public: public:
DescriptorSet() VULKAN_HPP_CONSTEXPR DescriptorSet()
: m_descriptorSet(VK_NULL_HANDLE) : m_descriptorSet(VK_NULL_HANDLE)
{} {}
DescriptorSet( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t )
: m_descriptorSet(VK_NULL_HANDLE) : m_descriptorSet(VK_NULL_HANDLE)
{} {}
@ -3380,11 +3386,11 @@ public:
class DescriptorSetLayout class DescriptorSetLayout
{ {
public: public:
DescriptorSetLayout() VULKAN_HPP_CONSTEXPR DescriptorSetLayout()
: m_descriptorSetLayout(VK_NULL_HANDLE) : m_descriptorSetLayout(VK_NULL_HANDLE)
{} {}
DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t )
: m_descriptorSetLayout(VK_NULL_HANDLE) : m_descriptorSetLayout(VK_NULL_HANDLE)
{} {}
@ -3447,11 +3453,11 @@ public:
class DescriptorPool class DescriptorPool
{ {
public: public:
DescriptorPool() VULKAN_HPP_CONSTEXPR DescriptorPool()
: m_descriptorPool(VK_NULL_HANDLE) : m_descriptorPool(VK_NULL_HANDLE)
{} {}
DescriptorPool( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t )
: m_descriptorPool(VK_NULL_HANDLE) : m_descriptorPool(VK_NULL_HANDLE)
{} {}
@ -3514,11 +3520,11 @@ public:
class Fence class Fence
{ {
public: public:
Fence() VULKAN_HPP_CONSTEXPR Fence()
: m_fence(VK_NULL_HANDLE) : m_fence(VK_NULL_HANDLE)
{} {}
Fence( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t )
: m_fence(VK_NULL_HANDLE) : m_fence(VK_NULL_HANDLE)
{} {}
@ -3581,11 +3587,11 @@ public:
class Semaphore class Semaphore
{ {
public: public:
Semaphore() VULKAN_HPP_CONSTEXPR Semaphore()
: m_semaphore(VK_NULL_HANDLE) : m_semaphore(VK_NULL_HANDLE)
{} {}
Semaphore( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t )
: m_semaphore(VK_NULL_HANDLE) : m_semaphore(VK_NULL_HANDLE)
{} {}
@ -3648,11 +3654,11 @@ public:
class Event class Event
{ {
public: public:
Event() VULKAN_HPP_CONSTEXPR Event()
: m_event(VK_NULL_HANDLE) : m_event(VK_NULL_HANDLE)
{} {}
Event( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Event( std::nullptr_t )
: m_event(VK_NULL_HANDLE) : m_event(VK_NULL_HANDLE)
{} {}
@ -3715,11 +3721,11 @@ public:
class QueryPool class QueryPool
{ {
public: public:
QueryPool() VULKAN_HPP_CONSTEXPR QueryPool()
: m_queryPool(VK_NULL_HANDLE) : m_queryPool(VK_NULL_HANDLE)
{} {}
QueryPool( std::nullptr_t ) VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t )
: m_queryPool(VK_NULL_HANDLE) : m_queryPool(VK_NULL_HANDLE)
{} {}
@ -3782,11 +3788,11 @@ public:
class Framebuffer class Framebuffer
{ {
public: public:
Framebuffer() VULKAN_HPP_CONSTEXPR Framebuffer()
: m_framebuffer(VK_NULL_HANDLE) : m_framebuffer(VK_NULL_HANDLE)
{} {}
Framebuffer( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t )
: m_framebuffer(VK_NULL_HANDLE) : m_framebuffer(VK_NULL_HANDLE)
{} {}
@ -3849,11 +3855,11 @@ public:
class RenderPass class RenderPass
{ {
public: public:
RenderPass() VULKAN_HPP_CONSTEXPR RenderPass()
: m_renderPass(VK_NULL_HANDLE) : m_renderPass(VK_NULL_HANDLE)
{} {}
RenderPass( std::nullptr_t ) VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t )
: m_renderPass(VK_NULL_HANDLE) : m_renderPass(VK_NULL_HANDLE)
{} {}
@ -3916,11 +3922,11 @@ public:
class PipelineCache class PipelineCache
{ {
public: public:
PipelineCache() VULKAN_HPP_CONSTEXPR PipelineCache()
: m_pipelineCache(VK_NULL_HANDLE) : m_pipelineCache(VK_NULL_HANDLE)
{} {}
PipelineCache( std::nullptr_t ) VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t )
: m_pipelineCache(VK_NULL_HANDLE) : m_pipelineCache(VK_NULL_HANDLE)
{} {}
@ -3983,11 +3989,11 @@ public:
class ObjectTableNVX class ObjectTableNVX
{ {
public: public:
ObjectTableNVX() VULKAN_HPP_CONSTEXPR ObjectTableNVX()
: m_objectTableNVX(VK_NULL_HANDLE) : m_objectTableNVX(VK_NULL_HANDLE)
{} {}
ObjectTableNVX( std::nullptr_t ) VULKAN_HPP_CONSTEXPR ObjectTableNVX( std::nullptr_t )
: m_objectTableNVX(VK_NULL_HANDLE) : m_objectTableNVX(VK_NULL_HANDLE)
{} {}
@ -4050,11 +4056,11 @@ public:
class IndirectCommandsLayoutNVX class IndirectCommandsLayoutNVX
{ {
public: public:
IndirectCommandsLayoutNVX() VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX()
: m_indirectCommandsLayoutNVX(VK_NULL_HANDLE) : m_indirectCommandsLayoutNVX(VK_NULL_HANDLE)
{} {}
IndirectCommandsLayoutNVX( std::nullptr_t ) VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX( std::nullptr_t )
: m_indirectCommandsLayoutNVX(VK_NULL_HANDLE) : m_indirectCommandsLayoutNVX(VK_NULL_HANDLE)
{} {}
@ -4117,11 +4123,11 @@ public:
class DescriptorUpdateTemplate class DescriptorUpdateTemplate
{ {
public: public:
DescriptorUpdateTemplate() VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate()
: m_descriptorUpdateTemplate(VK_NULL_HANDLE) : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
{} {}
DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t )
: m_descriptorUpdateTemplate(VK_NULL_HANDLE) : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
{} {}
@ -4186,11 +4192,11 @@ public:
class SamplerYcbcrConversion class SamplerYcbcrConversion
{ {
public: public:
SamplerYcbcrConversion() VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion()
: m_samplerYcbcrConversion(VK_NULL_HANDLE) : m_samplerYcbcrConversion(VK_NULL_HANDLE)
{} {}
SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t )
: m_samplerYcbcrConversion(VK_NULL_HANDLE) : m_samplerYcbcrConversion(VK_NULL_HANDLE)
{} {}
@ -4255,11 +4261,11 @@ public:
class ValidationCacheEXT class ValidationCacheEXT
{ {
public: public:
ValidationCacheEXT() VULKAN_HPP_CONSTEXPR ValidationCacheEXT()
: m_validationCacheEXT(VK_NULL_HANDLE) : m_validationCacheEXT(VK_NULL_HANDLE)
{} {}
ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t )
: m_validationCacheEXT(VK_NULL_HANDLE) : m_validationCacheEXT(VK_NULL_HANDLE)
{} {}
@ -4322,11 +4328,11 @@ public:
class DisplayKHR class DisplayKHR
{ {
public: public:
DisplayKHR() VULKAN_HPP_CONSTEXPR DisplayKHR()
: m_displayKHR(VK_NULL_HANDLE) : m_displayKHR(VK_NULL_HANDLE)
{} {}
DisplayKHR( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t )
: m_displayKHR(VK_NULL_HANDLE) : m_displayKHR(VK_NULL_HANDLE)
{} {}
@ -4389,11 +4395,11 @@ public:
class DisplayModeKHR class DisplayModeKHR
{ {
public: public:
DisplayModeKHR() VULKAN_HPP_CONSTEXPR DisplayModeKHR()
: m_displayModeKHR(VK_NULL_HANDLE) : m_displayModeKHR(VK_NULL_HANDLE)
{} {}
DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t )
: m_displayModeKHR(VK_NULL_HANDLE) : m_displayModeKHR(VK_NULL_HANDLE)
{} {}
@ -4456,11 +4462,11 @@ public:
class SurfaceKHR class SurfaceKHR
{ {
public: public:
SurfaceKHR() VULKAN_HPP_CONSTEXPR SurfaceKHR()
: m_surfaceKHR(VK_NULL_HANDLE) : m_surfaceKHR(VK_NULL_HANDLE)
{} {}
SurfaceKHR( std::nullptr_t ) VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t )
: m_surfaceKHR(VK_NULL_HANDLE) : m_surfaceKHR(VK_NULL_HANDLE)
{} {}
@ -4523,11 +4529,11 @@ public:
class SwapchainKHR class SwapchainKHR
{ {
public: public:
SwapchainKHR() VULKAN_HPP_CONSTEXPR SwapchainKHR()
: m_swapchainKHR(VK_NULL_HANDLE) : m_swapchainKHR(VK_NULL_HANDLE)
{} {}
SwapchainKHR( std::nullptr_t ) VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t )
: m_swapchainKHR(VK_NULL_HANDLE) : m_swapchainKHR(VK_NULL_HANDLE)
{} {}
@ -4590,11 +4596,11 @@ public:
class DebugReportCallbackEXT class DebugReportCallbackEXT
{ {
public: public:
DebugReportCallbackEXT() VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT()
: m_debugReportCallbackEXT(VK_NULL_HANDLE) : m_debugReportCallbackEXT(VK_NULL_HANDLE)
{} {}
DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t )
: m_debugReportCallbackEXT(VK_NULL_HANDLE) : m_debugReportCallbackEXT(VK_NULL_HANDLE)
{} {}
@ -4657,11 +4663,11 @@ public:
class DebugUtilsMessengerEXT class DebugUtilsMessengerEXT
{ {
public: public:
DebugUtilsMessengerEXT() VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT()
: m_debugUtilsMessengerEXT(VK_NULL_HANDLE) : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
{} {}
DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t )
: m_debugUtilsMessengerEXT(VK_NULL_HANDLE) : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
{} {}
@ -28773,11 +28779,11 @@ public:
class CommandBuffer class CommandBuffer
{ {
public: public:
CommandBuffer() VULKAN_HPP_CONSTEXPR CommandBuffer()
: m_commandBuffer(VK_NULL_HANDLE) : m_commandBuffer(VK_NULL_HANDLE)
{} {}
CommandBuffer( std::nullptr_t ) VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t )
: m_commandBuffer(VK_NULL_HANDLE) : m_commandBuffer(VK_NULL_HANDLE)
{} {}
@ -30199,11 +30205,11 @@ public:
class Queue class Queue
{ {
public: public:
Queue() VULKAN_HPP_CONSTEXPR Queue()
: m_queue(VK_NULL_HANDLE) : m_queue(VK_NULL_HANDLE)
{} {}
Queue( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t )
: m_queue(VK_NULL_HANDLE) : m_queue(VK_NULL_HANDLE)
{} {}
@ -30468,11 +30474,11 @@ public:
class Device class Device
{ {
public: public:
Device() VULKAN_HPP_CONSTEXPR Device()
: m_device(VK_NULL_HANDLE) : m_device(VK_NULL_HANDLE)
{} {}
Device( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Device( std::nullptr_t )
: m_device(VK_NULL_HANDLE) : m_device(VK_NULL_HANDLE)
{} {}
@ -34837,11 +34843,11 @@ public:
class PhysicalDevice class PhysicalDevice
{ {
public: public:
PhysicalDevice() VULKAN_HPP_CONSTEXPR PhysicalDevice()
: m_physicalDevice(VK_NULL_HANDLE) : m_physicalDevice(VK_NULL_HANDLE)
{} {}
PhysicalDevice( std::nullptr_t ) VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t )
: m_physicalDevice(VK_NULL_HANDLE) : m_physicalDevice(VK_NULL_HANDLE)
{} {}
@ -36534,11 +36540,11 @@ public:
class Instance class Instance
{ {
public: public:
Instance() VULKAN_HPP_CONSTEXPR Instance()
: m_instance(VK_NULL_HANDLE) : m_instance(VK_NULL_HANDLE)
{} {}
Instance( std::nullptr_t ) VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t )
: m_instance(VK_NULL_HANDLE) : m_instance(VK_NULL_HANDLE)
{} {}