内核优化

This commit is contained in:
2026-08-10 17:25:45 +08:00
parent c677c65f0e
commit 602e73f3b3
23 changed files with 221 additions and 52 deletions
@@ -81,3 +81,20 @@ TEST(observer_state_test, serializes_time_source_access) {
EXPECT_FALSE(data->overlap.load(std::memory_order_acquire));
EXPECT_EQ(data->value, 8);
}
struct Observer_Test_Throwing_Move_Time_Source {
Observer_Test_Throwing_Move_Time_Source() = default;
Observer_Test_Throwing_Move_Time_Source(Observer_Test_Throwing_Move_Time_Source&&) {
throw std::runtime_error("time source move failed");
}
Observer_Test_Throwing_Move_Time_Source& operator=(Observer_Test_Throwing_Move_Time_Source&&) = delete;
std::uint64_t now_ns() const noexcept {
return 0;
}
};
TEST(observer_state_test, move_constructor_propagates_throwing_time_source_move) {
using State = Observer_State<Disabled_Observer, Observer_Test_Throwing_Move_Time_Source>;
static_assert(std::move_constructible<Observer_Test_Throwing_Move_Time_Source>);
static_assert(!std::is_nothrow_move_constructible_v<State>);
State source;
EXPECT_THROW(State(std::move(source)), std::runtime_error);
}