lxgui
Loading...
Searching...
No Matches
utils_observer.hpp
1#ifndef LXGUI_UTILS_OBSERVER_HPP
2#define LXGUI_UTILS_OBSERVER_HPP
3
4#include "lxgui/lxgui.hpp"
5
6#include <oup/observable_unique_ptr.hpp>
7
8namespace lxgui::utils {
9
10template<typename T>
11using owner_ptr = oup::observable_sealed_ptr<T>;
12
13using oup::control_block;
14using oup::observer_ptr;
15
16using oup::const_pointer_cast;
17using oup::dynamic_pointer_cast;
18using oup::static_pointer_cast;
19
20template<typename T>
21using enable_observer_from_this = oup::enable_observer_from_this_sealed<T>;
22
23template<typename T, typename... Args>
24owner_ptr<T> make_owned(Args&&... args) {
25 return oup::make_observable_sealed<T>(std::forward<Args>(args)...);
26}
27
28} // namespace lxgui::utils
29
30#endif
oup::enable_observer_from_this_sealed< T > enable_observer_from_this
owner_ptr< T > make_owned(Args &&... args)
oup::observable_sealed_ptr< T > owner_ptr