@@ -92,84 +92,6 @@ struct slot_iterator
92
92
iterator_type i_;
93
93
};
94
94
95
- /* * STL-style list interface for sigc::signal#.
96
- * slot_list can be used to iterate over the list of slots that
97
- * is managed by a signal. Slots can be added or removed from
98
- * the list while existing iterators stay valid.
99
- *
100
- * @ingroup signal
101
- */
102
- template <typename T_slot>
103
- struct slot_list
104
- {
105
- using slot_type = T_slot;
106
-
107
- using reference = slot_type&;
108
- using const_reference = const slot_type&;
109
-
110
- using iterator = slot_iterator<slot_type>;
111
-
112
- using reverse_iterator = std::reverse_iterator<iterator>;
113
-
114
- slot_list () : sig_impl_(nullptr ) {}
115
-
116
- explicit slot_list (internal::signal_impl* sig_impl) : sig_impl_(sig_impl) {}
117
-
118
- iterator begin () { return iterator (sig_impl_->slots_ .begin ()); }
119
-
120
- iterator end () { return iterator (sig_impl_->slots_ .end ()); }
121
-
122
- reverse_iterator rbegin () { return reverse_iterator (end ()); }
123
-
124
- reverse_iterator rend () { return reverse_iterator (begin ()); }
125
-
126
- reference front () { return *begin (); }
127
-
128
- const_reference front () const { return *begin (); }
129
-
130
- reference back () { return *(--end ()); }
131
-
132
- const_reference back () const { return *(--end ()); }
133
-
134
- iterator insert (iterator i, const slot_type& slot_)
135
- {
136
- return iterator (sig_impl_->insert (i.i_ , slot_));
137
- }
138
-
139
- iterator insert (iterator i, slot_type&& slot_)
140
- {
141
- return iterator (sig_impl_->insert (i.i_ , std::move (slot_)));
142
- }
143
-
144
- void push_front (const slot_type& c) { insert (begin (), c); }
145
-
146
- void push_front (slot_type&& c) { insert (begin (), std::move (c)); }
147
-
148
- void push_back (const slot_type& c) { insert (end (), c); }
149
-
150
- void push_back (slot_type&& c) { insert (end (), std::move (c)); }
151
-
152
- iterator erase (iterator i) { return iterator (sig_impl_->erase (i.i_ )); }
153
-
154
- iterator erase (iterator first_, iterator last_)
155
- {
156
- while (first_ != last_)
157
- first_ = erase (first_);
158
- return last_;
159
- }
160
-
161
- void pop_front () { erase (begin ()); }
162
-
163
- void pop_back ()
164
- {
165
- auto tmp_ = end ();
166
- erase (--tmp_);
167
- }
168
-
169
- private:
170
- internal::signal_impl* sig_impl_;
171
- };
172
-
173
95
namespace internal
174
96
{
175
97
0 commit comments