2025-10-04 15:46:36 +02:00
|
|
|
#include "stdafx.h"
|
2020-11-29 13:03:50 +01:00
|
|
|
|
2020-12-11 19:06:19 +01:00
|
|
|
static_assert(std::endian::native == std::endian::little || std::endian::native == std::endian::big);
|
|
|
|
|
|
2020-12-12 07:40:07 +01:00
|
|
|
CHECK_SIZE_ALIGN(u128, 16, 16);
|
|
|
|
|
CHECK_SIZE_ALIGN(s128, 16, 16);
|
|
|
|
|
|
2020-12-18 08:01:26 +01:00
|
|
|
CHECK_SIZE_ALIGN(f16, 2, 2);
|
|
|
|
|
|
2020-11-29 13:03:50 +01:00
|
|
|
static_assert(be_t<u16>(1) + be_t<u32>(2) + be_t<u64>(3) == 6);
|
|
|
|
|
static_assert(le_t<u16>(1) + le_t<u32>(2) + le_t<u64>(3) == 6);
|
2020-12-15 16:06:51 +01:00
|
|
|
|
|
|
|
|
static_assert(sizeof(nullptr) == sizeof(void*));
|
2021-05-29 10:21:57 +02:00
|
|
|
|
|
|
|
|
static_assert(__cpp_constexpr_dynamic_alloc >= 201907L);
|
|
|
|
|
|
|
|
|
|
namespace
|
|
|
|
|
{
|
|
|
|
|
struct A
|
|
|
|
|
{
|
|
|
|
|
int a;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct B : A
|
|
|
|
|
{
|
|
|
|
|
int b;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct Z
|
|
|
|
|
{
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct C
|
|
|
|
|
{
|
|
|
|
|
virtual ~C() = 0;
|
|
|
|
|
int C;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct D : Z, B
|
|
|
|
|
{
|
|
|
|
|
int d;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct E : C, B
|
|
|
|
|
{
|
|
|
|
|
int e;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct F : C
|
|
|
|
|
{
|
|
|
|
|
virtual ~F() = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static_assert(is_same_ptr<B, A>());
|
|
|
|
|
static_assert(is_same_ptr<A, B>());
|
|
|
|
|
static_assert(is_same_ptr<D, B>());
|
|
|
|
|
static_assert(is_same_ptr<B, D>());
|
|
|
|
|
static_assert(!is_same_ptr<E, B>());
|
|
|
|
|
static_assert(!is_same_ptr<B, E>());
|
|
|
|
|
static_assert(is_same_ptr<F, C>());
|
|
|
|
|
static_assert(is_same_ptr<C, F>());
|
2025-04-05 21:50:45 +02:00
|
|
|
} // namespace
|