![]() |
GA::kit v0.3
G&A's in-house C++ application framework
|
Namespaces | |
| namespace | mock |
Classes | |
| struct | cleanable |
| class | copy_on_write |
| union | func_ptr |
| struct | function_traits |
| struct | function_traits< T *, std::enable_if_t< trait::is_func_v< T > > > |
| struct | function_traits< T, std::enable_if_t< trait::has_call_operator_v< T > > > |
| struct | function_traits< T, std::enable_if_t< trait::is_func_v< T > > > |
| struct | function_traits< T, std::enable_if_t< trait::is_pmf_v< T > > > |
| struct | null_mutex |
| struct | object_pointer |
| struct | object_pointer< T *, std::enable_if_t< trait::is_pointer_v< T * > > > |
| struct | object_pointer< T, std::enable_if_t< trait::is_weak_ptr_v< T > > > |
| struct | object_pointer< T, std::enable_if_t<!trait::is_pointer_v< T > &&!trait::is_weak_ptr_v< T > &&trait::is_weak_ptr_compatible_v< T > > > |
| struct | observer_type |
| class | slot |
| class | slot_base |
| class | slot_extended |
| class | slot_pmf |
| class | slot_pmf_extended |
| class | slot_pmf_tracked |
| class | slot_state |
| class | slot_tracked |
| struct | spin_mutex |
Typedefs | |
| using | obj_ptr = const void * |
| template<typename... T> | |
| using | slot_ptr = std::shared_ptr< slot_base< T... > > |
Functions | |
| template<typename T > | |
| func_ptr | get_function_ptr (const T &t) |
| template<typename T > | |
| obj_ptr | get_object_ptr (const T &t) |
| template<typename T > | |
| const T & | cow_read (const T &v) |
| template<typename T > | |
| const T & | cow_read (copy_on_write< T > &v) |
| template<typename T > | |
| T & | cow_write (T &v) |
| template<typename T > | |
| T & | cow_write (copy_on_write< T > &v) |
| template<typename B , typename D , typename ... Arg> | |
| std::shared_ptr< B > | make_shared (Arg &&... arg) |
| using sigslot::detail::obj_ptr = typedef const void* |
| using sigslot::detail::slot_ptr = typedef std::shared_ptr<slot_base<T...> > |
| const T & sigslot::detail::cow_read | ( | const T & | v | ) |
Specializations for thread-safe code path
| const T & sigslot::detail::cow_read | ( | copy_on_write< T > & | v | ) |
| T & sigslot::detail::cow_write | ( | copy_on_write< T > & | v | ) |
| T & sigslot::detail::cow_write | ( | T & | v | ) |
| func_ptr sigslot::detail::get_function_ptr | ( | const T & | t | ) |
| obj_ptr sigslot::detail::get_object_ptr | ( | const T & | t | ) |
|
inline |
std::make_shared instantiates a lot a templates, and makes both compilation time and executable size far bigger than they need to be. We offer a make_shared equivalent that will avoid most instantiations with the following tradeoffs: