mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-17 20:52:37 +01:00
Removed type_traits include from macros.h.
This commit is contained in:
@@ -34,6 +34,10 @@ namespace bx
|
||||
template<bool>
|
||||
constexpr bool isEnabled();
|
||||
|
||||
///
|
||||
template<class Ty>
|
||||
constexpr bool isTriviallyCopyable();
|
||||
|
||||
/// Exchange two values.
|
||||
template<typename Ty>
|
||||
void xchg(Ty& _a, Ty& _b);
|
||||
|
||||
@@ -15,6 +15,12 @@ namespace bx
|
||||
return true;
|
||||
}
|
||||
|
||||
template<class Ty>
|
||||
inline constexpr bool isTriviallyCopyable()
|
||||
{
|
||||
return __is_trivially_copyable(Ty);
|
||||
}
|
||||
|
||||
template<>
|
||||
inline constexpr bool isEnabled<false>()
|
||||
{
|
||||
|
||||
@@ -188,7 +188,7 @@ namespace bx
|
||||
template<typename HashT, typename Ty>
|
||||
inline uint32_t hash(const Ty& _data)
|
||||
{
|
||||
BX_STATIC_ASSERT(BX_TYPE_IS_POD(Ty) );
|
||||
BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
|
||||
return hash<HashT>(&_data, sizeof(Ty) );
|
||||
}
|
||||
|
||||
|
||||
@@ -276,7 +276,7 @@ namespace bx
|
||||
int32_t read(ReaderI* _reader, Ty& _value, Error* _err)
|
||||
{
|
||||
BX_ERROR_SCOPE(_err);
|
||||
BX_STATIC_ASSERT(BX_TYPE_IS_POD(Ty) );
|
||||
BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
|
||||
return _reader->read(&_value, sizeof(Ty), _err);
|
||||
}
|
||||
|
||||
@@ -284,7 +284,7 @@ namespace bx
|
||||
int32_t readHE(ReaderI* _reader, Ty& _value, bool _fromLittleEndian, Error* _err)
|
||||
{
|
||||
BX_ERROR_SCOPE(_err);
|
||||
BX_STATIC_ASSERT(BX_TYPE_IS_POD(Ty) );
|
||||
BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
|
||||
Ty value;
|
||||
int32_t result = _reader->read(&value, sizeof(Ty), _err);
|
||||
_value = toHostEndian(value, _fromLittleEndian);
|
||||
@@ -332,7 +332,7 @@ namespace bx
|
||||
int32_t write(WriterI* _writer, const Ty& _value, Error* _err)
|
||||
{
|
||||
BX_ERROR_SCOPE(_err);
|
||||
BX_STATIC_ASSERT(BX_TYPE_IS_POD(Ty) );
|
||||
BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
|
||||
return _writer->write(&_value, sizeof(Ty), _err);
|
||||
}
|
||||
|
||||
@@ -340,7 +340,7 @@ namespace bx
|
||||
int32_t writeLE(WriterI* _writer, const Ty& _value, Error* _err)
|
||||
{
|
||||
BX_ERROR_SCOPE(_err);
|
||||
BX_STATIC_ASSERT(BX_TYPE_IS_POD(Ty) );
|
||||
BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
|
||||
Ty value = toLittleEndian(_value);
|
||||
int32_t result = _writer->write(&value, sizeof(Ty), _err);
|
||||
return result;
|
||||
@@ -350,7 +350,7 @@ namespace bx
|
||||
int32_t writeBE(WriterI* _writer, const Ty& _value, Error* _err)
|
||||
{
|
||||
BX_ERROR_SCOPE(_err);
|
||||
BX_STATIC_ASSERT(BX_TYPE_IS_POD(Ty) );
|
||||
BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
|
||||
Ty value = toBigEndian(_value);
|
||||
int32_t result = _writer->write(&value, sizeof(Ty), _err);
|
||||
return result;
|
||||
@@ -432,7 +432,7 @@ namespace bx
|
||||
int32_t peek(ReaderSeekerI* _reader, Ty& _value, Error* _err)
|
||||
{
|
||||
BX_ERROR_SCOPE(_err);
|
||||
BX_STATIC_ASSERT(BX_TYPE_IS_POD(Ty) );
|
||||
BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
|
||||
return peek(_reader, &_value, sizeof(Ty), _err);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#define BX_MACROS_H_HEADER_GUARD
|
||||
|
||||
#include "bx.h"
|
||||
#include <type_traits>
|
||||
|
||||
///
|
||||
#if BX_COMPILER_MSVC
|
||||
@@ -198,12 +197,6 @@
|
||||
# define BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC(_x)
|
||||
#endif // BX_COMPILER_
|
||||
|
||||
///
|
||||
#if BX_COMPILER_MSVC
|
||||
# define BX_TYPE_IS_POD(t) (!__is_class(t) || __is_pod(t))
|
||||
#else
|
||||
# define BX_TYPE_IS_POD(t) std::is_pod<t>::value
|
||||
#endif
|
||||
///
|
||||
#define BX_CLASS_NO_DEFAULT_CTOR(_class) \
|
||||
private: _class()
|
||||
|
||||
Reference in New Issue
Block a user