CFx SDK Documentation  2022 SP0
slimsig.h
Go to the documentation of this file.
1 
56 #ifndef slimsignals_h
57 #define slimsignals_h
58 
59 #include "detail/signal_base.h"
60 
61 namespace slimsig {
62  template <class Handler, class SignalTraits = signal_traits<Handler>, class Allocator = std::allocator<std::function<Handler>>>
63  class signal : private signal_base<SignalTraits, Allocator, Handler> {
64  public:
66  using typename base::return_type;
67  using typename base::callback;
68  using typename base::allocator_type;
69  using typename base::slot;
70  using typename base::slot_list;
71  using typename base::list_allocator_type;
72  using typename base::const_slot_reference;
73  using typename base::Connection;
74  using base::arity;
75  using base::argument;
76  // allocator constructor
77  using base::base;
78 
79  // default constructor
80  signal() : signal(allocator_type()) {};
81  using base::emit;
82  using base::connect;
83  using base::connect_once;
84  using base::connect_extended;
85  using base::disconnect_all;
86  using base::slot_count;
87  using base::get_allocator;
88  using base::empty;
89  using base::swap;
90  using base::max_size;
91  using base::max_depth;
92  using base::get_depth;
93  using base::is_running;
94  using base::remaining_slots;
95 
96  };
97  template <
98  class Handler,
99  class SignalTraits = signal_traits<Handler>,
100  class Allocator = std::allocator<std::function<Handler>>
102 
103 }
104 #endif
void swap(signal< Handler, SignalTraits, Allocator > &lhs, signal< Handler, SignalTraits, Allocator > &rhs)