|
Aria 3.2.6
C++23 MVVM framework — reactive, coroutine-first, ABI-layered
|
A read-only observable: has .get() and exposes its value_type. More...
#include <concepts.hpp>
A read-only observable: has .get() and exposes its value_type.
The on_changed surface is intentionally not part of the concept here because Property<T> and Computed<T> deliver it via type-erased Subscription on_changed(std::function<void(const T&)>) which is hard to express as a concept without inducing the very SFINAE noise we are trying to remove. Adapter code that genuinely needs both surfaces should constrain on Observable here AND check requires(t) { t.on_changed(...); } locally.