全部迁移完成

This commit is contained in:
2026-08-20 22:20:23 +08:00
parent 89ea8239be
commit e67161c90d
60 changed files with 1920 additions and 458 deletions
+12
View File
@@ -113,6 +113,10 @@ TEST(state_tag, callback_publishes_only_requested_layer) {
static_assert(requires(Object& object) {
object.template access_state<Object_State_Tag>([](const auto&) {});
});
static_assert(std::same_as<
decltype(std::declval<const Object&>().template read_state<Object_State_Tag>()),
const Test_Object::State&
>);
struct Missing_State_Tag {};
static_assert(!double_buffer::detail::State_Tag_In<Missing_State_Tag, Object::States>);
TEST(state_tag, inherited_tags_remain_independently_addressable) {
@@ -128,6 +132,14 @@ TEST(state_tag, inherited_tags_remain_independently_addressable) {
EXPECT_EQ(base_calls, 1);
EXPECT_EQ(derived_calls, 1);
}
TEST(state_tag, committed_layer_is_directly_readable_by_tag) {
auto object = build_object<Derived>();
object->update_state<&Test_Object::State::first>(41);
object->update_state<&Derived_Object::State::derived>(43);
object->advance();
EXPECT_EQ(object->read_state<Object_State_Tag>().first, 41);
EXPECT_EQ(object->read_state<Derived_State_Tag>().derived, 43);
}
static_assert(double_buffer::detail::State_Tag_In<double_buffer::Root_State_Tag, Derived::States>);
static_assert(double_buffer::detail::State_Tag_In<Object_State_Tag, Derived::States>);
static_assert(double_buffer::detail::State_Tag_In<Derived_State_Tag, Derived::States>);