mirror of
https://github.com/KhronosGroup/Vulkan-Hpp.git
synced 2024-10-14 16:32:17 +00:00
Introduce cast-operator to std::string and std::string_view on ArrayWrapper1D<char,N>
-> needed to add all the relational operators on <char,N> as well to keep the compiler happy!
This commit is contained in:
parent
8c2d6d7d05
commit
1075096d8c
@ -6940,6 +6940,56 @@ int main( int argc, char ** argv )
|
|||||||
{
|
{
|
||||||
return this->data();
|
return this->data();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
operator std::string const () const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return std::string( this->data() );
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 17 <= VULKAN_HPP_CPP_VERSION
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
operator std::string_view const () const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return std::string_view( this->data() );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// specialization of relational operators between std::string and arrays of chars
|
// specialization of relational operators between std::string and arrays of chars
|
||||||
@ -7758,7 +7808,7 @@ int main( int argc, char ** argv )
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __cplusplus >= 201402L
|
#if 14 <= VULKAN_HPP_CPP_VERSION
|
||||||
# define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
|
# define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
|
||||||
#else
|
#else
|
||||||
# define VULKAN_HPP_DEPRECATED( msg )
|
# define VULKAN_HPP_DEPRECATED( msg )
|
||||||
@ -7842,6 +7892,24 @@ int main( int argc, char ** argv )
|
|||||||
#ifndef VULKAN_HPP
|
#ifndef VULKAN_HPP
|
||||||
#define VULKAN_HPP
|
#define VULKAN_HPP
|
||||||
|
|
||||||
|
#if defined( _MSVC_LANG )
|
||||||
|
# define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
|
||||||
|
#else
|
||||||
|
# define VULKAN_HPP_CPLUSPLUS __cplusplus
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if VULKAN_HPP_CPLUSPLUS < 201103L
|
||||||
|
static_assert( false, "vulkan.hpp needs at least c++ standard version 11" );
|
||||||
|
#elif VULKAN_HPP_CPLUSPLUS < 201402L
|
||||||
|
# define VULKAN_HPP_CPP_VERSION 11
|
||||||
|
#elif VULKAN_HPP_CPLUSPLUS < 201703L
|
||||||
|
# define VULKAN_HPP_CPP_VERSION 14
|
||||||
|
#elif VULKAN_HPP_CPLUSPLUS < 202002L
|
||||||
|
# define VULKAN_HPP_CPP_VERSION 17
|
||||||
|
#else
|
||||||
|
# define VULKAN_HPP_CPP_VERSION 20
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
@ -7855,6 +7923,10 @@ int main( int argc, char ** argv )
|
|||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
|
|
||||||
|
#if 17 <= VULKAN_HPP_CPP_VERSION
|
||||||
|
#include <string_view>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
|
#if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
|
||||||
# if !defined(VULKAN_HPP_NO_SMART_HANDLE)
|
# if !defined(VULKAN_HPP_NO_SMART_HANDLE)
|
||||||
# define VULKAN_HPP_NO_SMART_HANDLE
|
# define VULKAN_HPP_NO_SMART_HANDLE
|
||||||
|
@ -8,6 +8,24 @@
|
|||||||
#ifndef VULKAN_HPP
|
#ifndef VULKAN_HPP
|
||||||
#define VULKAN_HPP
|
#define VULKAN_HPP
|
||||||
|
|
||||||
|
#if defined( _MSVC_LANG )
|
||||||
|
# define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
|
||||||
|
#else
|
||||||
|
# define VULKAN_HPP_CPLUSPLUS __cplusplus
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if VULKAN_HPP_CPLUSPLUS < 201103L
|
||||||
|
static_assert( false, "vulkan.hpp needs at least c++ standard version 11" );
|
||||||
|
#elif VULKAN_HPP_CPLUSPLUS < 201402L
|
||||||
|
# define VULKAN_HPP_CPP_VERSION 11
|
||||||
|
#elif VULKAN_HPP_CPLUSPLUS < 201703L
|
||||||
|
# define VULKAN_HPP_CPP_VERSION 14
|
||||||
|
#elif VULKAN_HPP_CPLUSPLUS < 202002L
|
||||||
|
# define VULKAN_HPP_CPP_VERSION 17
|
||||||
|
#else
|
||||||
|
# define VULKAN_HPP_CPP_VERSION 20
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
@ -21,6 +39,10 @@
|
|||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
|
|
||||||
|
#if 17 <= VULKAN_HPP_CPP_VERSION
|
||||||
|
# include <string_view>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
|
#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
|
||||||
# if !defined( VULKAN_HPP_NO_SMART_HANDLE )
|
# if !defined( VULKAN_HPP_NO_SMART_HANDLE )
|
||||||
# define VULKAN_HPP_NO_SMART_HANDLE
|
# define VULKAN_HPP_NO_SMART_HANDLE
|
||||||
@ -141,7 +163,7 @@ static_assert( VK_HEADER_VERSION == 144, "Wrong VK_HEADER_VERSION!" );
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __cplusplus >= 201402L
|
#if 14 <= VULKAN_HPP_CPP_VERSION
|
||||||
# define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
|
# define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
|
||||||
#else
|
#else
|
||||||
# define VULKAN_HPP_DEPRECATED( msg )
|
# define VULKAN_HPP_DEPRECATED( msg )
|
||||||
@ -341,6 +363,56 @@ namespace VULKAN_HPP_NAMESPACE
|
|||||||
{
|
{
|
||||||
return this->data();
|
return this->data();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
operator std::string const() const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return std::string( this->data() );
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 17 <= VULKAN_HPP_CPP_VERSION
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
operator std::string_view const() const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return std::string_view( this->data() );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
|
||||||
|
bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
|
||||||
|
{
|
||||||
|
return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// specialization of relational operators between std::string and arrays of chars
|
// specialization of relational operators between std::string and arrays of chars
|
||||||
|
Loading…
Reference in New Issue
Block a user