全部迁移完成
This commit is contained in:
@@ -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>);
|
||||
|
||||
Reference in New Issue
Block a user