|
|
@@ -887,9 +887,17 @@ TEST(Any, SBOVsZeroedSBOSize) {
|
|
|
ASSERT_EQ(valid, same.data());
|
|
|
}
|
|
|
|
|
|
-TEST(Any, Alignment) {
|
|
|
+TEST(Any, NoSBOAlignment) {
|
|
|
static constexpr auto alignment = alignof(over_aligned);
|
|
|
entt::basic_any<alignment> target[2] = { over_aligned{}, over_aligned{} };
|
|
|
+ const auto *data = target[0].data();
|
|
|
+
|
|
|
+ ASSERT_TRUE((reinterpret_cast<std::uintptr_t>(entt::any_cast<over_aligned>(&target[0u])) % alignment) == 0u);
|
|
|
+ ASSERT_TRUE((reinterpret_cast<std::uintptr_t>(entt::any_cast<over_aligned>(&target[1u])) % alignment) == 0u);
|
|
|
+
|
|
|
+ std::swap(target[0], target[1]);
|
|
|
+
|
|
|
ASSERT_TRUE((reinterpret_cast<std::uintptr_t>(entt::any_cast<over_aligned>(&target[0u])) % alignment) == 0u);
|
|
|
ASSERT_TRUE((reinterpret_cast<std::uintptr_t>(entt::any_cast<over_aligned>(&target[1u])) % alignment) == 0u);
|
|
|
+ ASSERT_EQ(data, target[1].data());
|
|
|
}
|