28
28
//
29
29
// If test_track_obj writes nothing and the return code is 0, the test has passed.
30
30
31
+ // sigc::track_obj() is deprecated, but let's keep the test if possible.
32
+ // If libsigc++ is configured with -Dbuild-deprecated-api=false
33
+ // (--disable-deprecated-api), SIGCXX_DISABLE_DEPRECATED is defined in
34
+ // sigc++config.h. An undef at the start of this file has no effect.
35
+ #undef SIGCXX_DISABLE_DEPRECATED
36
+
31
37
#include " testutilities.h"
32
38
#include < iostream>
33
39
#include < sigc++/adaptors/track_obj.h>
@@ -118,7 +124,11 @@ main(int argc, char* argv[])
118
124
sigc::slot<std::string (int )> sl2;
119
125
{
120
126
bar_group4 bar4;
127
+ #ifndef SIGCXX_DISABLE_DEPRECATED
121
128
sl1 = sigc::track_obj (Functor1 (bar4), bar4);
129
+ #else
130
+ sl1 = sigc::track_object (Functor1 (bar4), bar4);
131
+ #endif
122
132
sl2 = sigc::track_object (Functor1 (bar4), bar4);
123
133
result_stream << sl1 (-2 ) << " , " << sl2 (2 );
124
134
util->check_result (result_stream, " negative, positive" );
@@ -134,7 +144,11 @@ main(int argc, char* argv[])
134
144
auto psl4 = new sigc::slot<std::string (int , std::string)>;
135
145
auto pbar4 = new bar_group4;
136
146
auto pbook4 = new book (" A Book" );
147
+ #ifndef SIGCXX_DISABLE_DEPRECATED
137
148
*psl3 = sigc::track_obj (Functor2 (*pbar4, *pbook4), *pbar4, *pbook4);
149
+ #else
150
+ *psl3 = sigc::track_object (Functor2 (*pbar4, *pbook4), *pbar4, *pbook4);
151
+ #endif
138
152
*psl4 = sigc::track_object (Functor2 (*pbar4, *pbook4), *pbar4, *pbook4);
139
153
result_stream << (*psl3)(0 , " Book title: " ) << " , " << (*psl4)(1 , " Title: " );
140
154
util->check_result (result_stream, " zero, Book title: A Book, positive, Title: A Book" );
@@ -162,8 +176,13 @@ main(int argc, char* argv[])
162
176
book guest_book (" karl" );
163
177
// no auto-disconnect
164
178
// sl1 = [&guest_book](std::ostringstream& stream){ stream << guest_book << "\n"; };
179
+ #ifndef SIGCXX_DISABLE_DEPRECATED
165
180
sl11 = sigc::track_obj (
166
181
[&guest_book](std::ostringstream& stream) { stream << guest_book; }, guest_book);
182
+ #else
183
+ sl11 = sigc::track_object (
184
+ [&guest_book](std::ostringstream& stream) { stream << guest_book; }, guest_book);
185
+ #endif
167
186
sl12 = sigc::track_object (
168
187
[&guest_book](std::ostringstream& stream) { stream << guest_book; }, guest_book);
169
188
sl11 (result_stream);
@@ -183,8 +202,12 @@ main(int argc, char* argv[])
183
202
book guest_book (" karl" );
184
203
// sl2 = [&guest_book] () { egon(guest_book); }; // no auto-disconnect
185
204
// sl2 = std::bind(&egon, std::ref(guest_book)); // does not compile (gcc 4.6.3)
205
+ #ifndef SIGCXX_DISABLE_DEPRECATED
186
206
sl21 = sigc::track_obj ([&guest_book]() { egon (guest_book); }, guest_book);
187
- sl22 = sigc::track_obj ([&guest_book]() { egon (guest_book); }, guest_book);
207
+ #else
208
+ sl21 = sigc::track_object ([&guest_book]() { egon (guest_book); }, guest_book);
209
+ #endif
210
+ sl22 = sigc::track_object ([&guest_book]() { egon (guest_book); }, guest_book);
188
211
sl21 ();
189
212
sl22 ();
190
213
util->check_result (result_stream, " egon(string 'karl')egon(string 'egon was here')" );
@@ -208,7 +231,11 @@ main(int argc, char* argv[])
208
231
// some_signal.connect([&some_bar](){ foo_group4(some_bar); }); // no auto-disconnect
209
232
// some_signal.connect(sigc::bind(&foo_group4, std::ref(some_bar))); // auto-disconnects,
210
233
// but we prefer C++11 lambda
234
+ #ifndef SIGCXX_DISABLE_DEPRECATED
211
235
some_signal.connect (sigc::track_obj ([&some_bar]() { foo_group4 (some_bar); }, some_bar));
236
+ #else
237
+ some_signal.connect (sigc::track_object ([&some_bar]() { foo_group4 (some_bar); }, some_bar));
238
+ #endif
212
239
some_signal.connect (sigc::track_object ([&some_bar]() { foo_group4 (some_bar); }, some_bar));
213
240
some_signal.emit ();
214
241
util->check_result (result_stream, " foo_group4(bar_group4&)foo_group4(bar_group4&)" );
0 commit comments