29 #include <ableton/build_system/Warnings.hpp>
31 #include <boost/signals2/signal.hpp>
39 template <
typename ValueT>
42 using WatchersT = boost::signals2::signal<
43 void (
const ValueT&,
const ValueT&)>;
47 watchable() =
default;
48 watchable(watchable&& other) noexcept
50 watchers_.swap(other.watchers_);
52 watchable& operator=(watchable&& other) noexcept
54 watchers_.swap(other.watchers_);
58 WatchersT& watchers() {
return watchers_; }
C++ amazing templates and reusable implementations awesomeness.