]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/asio/test/execution/blocking_adaptation.cpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / libs / asio / test / execution / blocking_adaptation.cpp
CommitLineData
20effc67
TL
1//
2// blocking_adaptation.cpp
3// ~~~~~~~~~~~~~~~~~~~~~~~
4//
5// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6//
7// Distributed under the Boost Software License, Version 1.0. (See accompanying
8// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9//
10
11// Disable autolinking for unit tests.
12#if !defined(BOOST_ALL_NO_LIB)
13#define BOOST_ALL_NO_LIB 1
14#endif // !defined(BOOST_ALL_NO_LIB)
15
16// Test that header file is self-contained.
17#include <boost/asio/execution/blocking_adaptation.hpp>
18
19#include <boost/asio/prefer.hpp>
20#include <boost/asio/query.hpp>
21#include <boost/asio/require.hpp>
22#include "../unit_test.hpp"
23
24namespace exec = boost::asio::execution;
25
26typedef exec::blocking_adaptation_t s;
27typedef exec::blocking_adaptation_t::disallowed_t n1;
28typedef exec::blocking_adaptation_t::allowed_t n2;
29
30struct ex_nq_nr
31{
32 template <typename F>
33 void execute(const F&) const
34 {
35 }
36
37 friend bool operator==(const ex_nq_nr&, const ex_nq_nr&) BOOST_ASIO_NOEXCEPT
38 {
39 return true;
40 }
41
42 friend bool operator!=(const ex_nq_nr&, const ex_nq_nr&) BOOST_ASIO_NOEXCEPT
43 {
44 return false;
45 }
46};
47
48namespace boost {
49namespace asio {
50namespace traits {
51
52#if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
53
54template <>
55struct equality_comparable<ex_nq_nr>
56{
57 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
58 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
59};
60
61#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
62
63#if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
64
65template <typename Function>
66struct execute_member<ex_nq_nr, Function>
67{
68 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
69 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
70
71 typedef void result_type;
72};
73
74#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
75
76} // namespace traits
77} // namespace asio
78} // namespace boost
79
80template <typename ResultType, typename ParamType, typename Result>
81struct ex_cq_nr
82{
83 static BOOST_ASIO_CONSTEXPR ResultType query(ParamType) BOOST_ASIO_NOEXCEPT
84 {
85 return Result();
86 }
87
88 template <typename F>
89 void execute(const F&) const
90 {
91 }
92
93 friend bool operator==(const ex_cq_nr&, const ex_cq_nr&) BOOST_ASIO_NOEXCEPT
94 {
95 return true;
96 }
97
98 friend bool operator!=(const ex_cq_nr&, const ex_cq_nr&) BOOST_ASIO_NOEXCEPT
99 {
100 return false;
101 }
102};
103
104namespace boost {
105namespace asio {
106namespace traits {
107
108#if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
109
110template <typename ResultType, typename ParamType, typename Result>
111struct equality_comparable<ex_cq_nr<ResultType, ParamType, Result> >
112{
113 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
114 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
115};
116
117#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
118
119#if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
120
121template <typename ResultType, typename ParamType,
122 typename Result, typename Function>
123struct execute_member<ex_cq_nr<ResultType, ParamType, Result>, Function>
124{
125 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
126 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
127
128 typedef void result_type;
129};
130
131#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
132
133#if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
134
135template <typename ResultType, typename ParamType,
136 typename Result, typename Param>
137struct query_static_constexpr_member<
138 ex_cq_nr<ResultType, ParamType, Result>, Param,
139 typename boost::asio::enable_if<
140 boost::asio::is_convertible<Param, ParamType>::value
141 >::type>
142{
143 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
144 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
145
146 typedef Result result_type; // Must return raw result type.
147
148 static BOOST_ASIO_CONSTEXPR result_type value()
149 {
150 return Result();
151 }
152};
153
154#endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT)
155
156} // namespace traits
157} // namespace asio
158} // namespace boost
159
160template <typename ResultType, typename ParamType, typename Result>
161struct ex_mq_nr
162{
163 ResultType query(ParamType) const BOOST_ASIO_NOEXCEPT
164 {
165 return Result();
166 }
167
168 template <typename F>
169 void execute(const F&) const
170 {
171 }
172
173 friend bool operator==(const ex_mq_nr&, const ex_mq_nr&) BOOST_ASIO_NOEXCEPT
174 {
175 return true;
176 }
177
178 friend bool operator!=(const ex_mq_nr&, const ex_mq_nr&) BOOST_ASIO_NOEXCEPT
179 {
180 return false;
181 }
182};
183
184namespace boost {
185namespace asio {
186namespace traits {
187
188#if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
189
190template <typename ResultType, typename ParamType, typename Result>
191struct equality_comparable<ex_mq_nr<ResultType, ParamType, Result> >
192{
193 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
194 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
195};
196
197#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
198
199#if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
200
201template <typename ResultType, typename ParamType,
202 typename Result, typename Function>
203struct execute_member<ex_mq_nr<ResultType, ParamType, Result>, Function>
204{
205 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
206 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
207
208 typedef void result_type;
209};
210
211#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
212
213#if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
214
215template <typename ResultType, typename ParamType,
216 typename Result, typename Param>
217struct query_member<
218 ex_mq_nr<ResultType, ParamType, Result>, Param,
219 typename boost::asio::enable_if<
220 boost::asio::is_convertible<Param, ParamType>::value
221 >::type>
222{
223 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
224 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
225
226 typedef ResultType result_type;
227};
228
229#endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
230
231} // namespace traits
232} // namespace asio
233} // namespace boost
234
235template <typename ResultType, typename ParamType, typename Result>
236struct ex_fq_nr
237{
238 friend ResultType query(const ex_fq_nr&, ParamType) BOOST_ASIO_NOEXCEPT
239 {
240 return Result();
241 }
242
243 template <typename F>
244 void execute(const F&) const
245 {
246 }
247
248 friend bool operator==(const ex_fq_nr&, const ex_fq_nr&) BOOST_ASIO_NOEXCEPT
249 {
250 return true;
251 }
252
253 friend bool operator!=(const ex_fq_nr&, const ex_fq_nr&) BOOST_ASIO_NOEXCEPT
254 {
255 return false;
256 }
257};
258
259namespace boost {
260namespace asio {
261namespace traits {
262
263#if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
264
265template <typename ResultType, typename ParamType, typename Result>
266struct equality_comparable<ex_fq_nr<ResultType, ParamType, Result> >
267{
268 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
269 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
270};
271
272#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
273
274#if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
275
276template <typename ResultType, typename ParamType,
277 typename Result, typename Function>
278struct execute_member<ex_fq_nr<ResultType, ParamType, Result>, Function>
279{
280 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
281 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
282
283 typedef void result_type;
284};
285
286#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
287
288#if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
289
290template <typename ResultType, typename ParamType,
291 typename Result, typename Param>
292struct query_free<
293 ex_fq_nr<ResultType, ParamType, Result>, Param,
294 typename boost::asio::enable_if<
295 boost::asio::is_convertible<Param, ParamType>::value
296 >::type>
297{
298 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
299 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
300
301 typedef ResultType result_type;
302};
303
304#endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
305
306} // namespace traits
307} // namespace asio
308} // namespace boost
309
310template <typename CurrentType, typename OtherType>
311struct ex_mq_mr
312{
313 CurrentType query(CurrentType) const BOOST_ASIO_NOEXCEPT
314 {
315 return CurrentType();
316 }
317
318 CurrentType query(OtherType) const BOOST_ASIO_NOEXCEPT
319 {
320 return CurrentType();
321 }
322
323 ex_mq_mr<CurrentType, OtherType> require(
324 CurrentType) const BOOST_ASIO_NOEXCEPT
325 {
326 return ex_mq_mr<CurrentType, OtherType>();
327 }
328
329 ex_mq_mr<OtherType, CurrentType> require(
330 OtherType) const BOOST_ASIO_NOEXCEPT
331 {
332 return ex_mq_mr<OtherType, CurrentType>();
333 }
334
335 template <typename F>
336 void execute(const F&) const
337 {
338 }
339
340 friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) BOOST_ASIO_NOEXCEPT
341 {
342 return true;
343 }
344
345 friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) BOOST_ASIO_NOEXCEPT
346 {
347 return false;
348 }
349};
350
351template <typename CurrentType>
352struct ex_mq_mr<CurrentType, CurrentType>
353{
354 CurrentType query(CurrentType) const BOOST_ASIO_NOEXCEPT
355 {
356 return CurrentType();
357 }
358
359 ex_mq_mr<CurrentType, CurrentType> require(
360 CurrentType) const BOOST_ASIO_NOEXCEPT
361 {
362 return ex_mq_mr<CurrentType, CurrentType>();
363 }
364
365 template <typename F>
366 void execute(const F&) const
367 {
368 }
369
370 friend bool operator==(const ex_mq_mr&, const ex_mq_mr&) BOOST_ASIO_NOEXCEPT
371 {
372 return true;
373 }
374
375 friend bool operator!=(const ex_mq_mr&, const ex_mq_mr&) BOOST_ASIO_NOEXCEPT
376 {
377 return false;
378 }
379};
380
381namespace boost {
382namespace asio {
383namespace traits {
384
385#if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
386
387template <typename CurrentType, typename OtherType>
388struct equality_comparable<ex_mq_mr<CurrentType, OtherType> >
389{
390 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
391 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
392};
393
394#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
395
396#if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
397
398template <typename CurrentType, typename OtherType, typename Function>
399struct execute_member<ex_mq_mr<CurrentType, OtherType>, Function>
400{
401 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
402 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
403
404 typedef void result_type;
405};
406
407#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
408
409#if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
410
411template <typename CurrentType, typename OtherType, typename Param>
412struct query_member<
413 ex_mq_mr<CurrentType, OtherType>, Param,
414 typename boost::asio::enable_if<
415 boost::asio::is_convertible<Param, CurrentType>::value
416 || boost::asio::is_convertible<Param, OtherType>::value
417 >::type>
418{
419 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
420 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
421
422 typedef CurrentType result_type;
423};
424
425#endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
426
427#if !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
428
429template <typename CurrentType, typename OtherType, typename Param>
430struct require_member<
431 ex_mq_mr<CurrentType, OtherType>, Param,
432 typename boost::asio::enable_if<
433 boost::asio::is_convertible<Param, CurrentType>::value
434 >::type>
435{
436 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
437 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
438
439 typedef ex_mq_mr<CurrentType, OtherType> result_type;
440};
441
442template <typename CurrentType, typename OtherType, typename Param>
443struct require_member<
444 ex_mq_mr<CurrentType, OtherType>, Param,
445 typename boost::asio::enable_if<
446 boost::asio::is_convertible<Param, OtherType>::value
447 && !boost::asio::is_same<CurrentType, OtherType>::value
448 >::type>
449{
450 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
451 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
452
453 typedef ex_mq_mr<OtherType, CurrentType> result_type;
454};
455
456#endif // !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
457
458} // namespace traits
459} // namespace asio
460} // namespace boost
461
462template <typename CurrentType, typename OtherType>
463struct ex_fq_fr
464{
465 friend CurrentType query(const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT
466 {
467 return CurrentType();
468 }
469
470 friend CurrentType query(const ex_fq_fr&, OtherType) BOOST_ASIO_NOEXCEPT
471 {
472 return CurrentType();
473 }
474
475 friend ex_fq_fr<CurrentType, OtherType> require(
476 const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT
477 {
478 return ex_fq_fr<CurrentType, OtherType>();
479 }
480
481 friend ex_fq_fr<OtherType, CurrentType> require(
482 const ex_fq_fr&, OtherType) BOOST_ASIO_NOEXCEPT
483 {
484 return ex_fq_fr<OtherType, CurrentType>();
485 }
486
487 friend ex_fq_fr<CurrentType, OtherType> prefer(
488 const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT
489 {
490 return ex_fq_fr<CurrentType, OtherType>();
491 }
492
493 friend ex_fq_fr<OtherType, CurrentType> prefer(
494 const ex_fq_fr&, OtherType) BOOST_ASIO_NOEXCEPT
495 {
496 return ex_fq_fr<OtherType, CurrentType>();
497 }
498
499 template <typename F>
500 void execute(const F&) const
501 {
502 }
503
504 friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) BOOST_ASIO_NOEXCEPT
505 {
506 return true;
507 }
508
509 friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) BOOST_ASIO_NOEXCEPT
510 {
511 return false;
512 }
513};
514
515template <typename CurrentType>
516struct ex_fq_fr<CurrentType, CurrentType>
517{
518 friend CurrentType query(const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT
519 {
520 return CurrentType();
521 }
522
523 friend ex_fq_fr<CurrentType, CurrentType> require(
524 const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT
525 {
526 return ex_fq_fr<CurrentType, CurrentType>();
527 }
528
529 friend ex_fq_fr<CurrentType, CurrentType> prefer(
530 const ex_fq_fr&, CurrentType) BOOST_ASIO_NOEXCEPT
531 {
532 return ex_fq_fr<CurrentType, CurrentType>();
533 }
534
535 template <typename F>
536 void execute(const F&) const
537 {
538 }
539
540 friend bool operator==(const ex_fq_fr&, const ex_fq_fr&) BOOST_ASIO_NOEXCEPT
541 {
542 return true;
543 }
544
545 friend bool operator!=(const ex_fq_fr&, const ex_fq_fr&) BOOST_ASIO_NOEXCEPT
546 {
547 return false;
548 }
549};
550
551namespace boost {
552namespace asio {
553namespace traits {
554
555#if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
556
557template <typename CurrentType, typename OtherType>
558struct equality_comparable<ex_fq_fr<CurrentType, OtherType> >
559{
560 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
561 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
562};
563
564#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
565
566#if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
567
568template <typename CurrentType, typename OtherType, typename Function>
569struct execute_member<ex_fq_fr<CurrentType, OtherType>, Function>
570{
571 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
572 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = false);
573
574 typedef void result_type;
575};
576
577#endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
578
579#if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
580
581template <typename CurrentType, typename OtherType, typename Param>
582struct query_free<
583 ex_fq_fr<CurrentType, OtherType>, Param,
584 typename boost::asio::enable_if<
585 boost::asio::is_convertible<Param, CurrentType>::value
586 || boost::asio::is_convertible<Param, OtherType>::value
587 >::type>
588{
589 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
590 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
591
592 typedef CurrentType result_type;
593};
594
595#endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_FREE_TRAIT)
596
597#if !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
598
599template <typename CurrentType, typename OtherType, typename Param>
600struct require_free<
601 ex_fq_fr<CurrentType, OtherType>, Param,
602 typename boost::asio::enable_if<
603 boost::asio::is_convertible<Param, CurrentType>::value
604 >::type>
605{
606 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
607 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
608
609 typedef ex_fq_fr<CurrentType, OtherType> result_type;
610};
611
612template <typename CurrentType, typename OtherType, typename Param>
613struct require_free<
614 ex_fq_fr<CurrentType, OtherType>, Param,
615 typename boost::asio::enable_if<
616 boost::asio::is_convertible<Param, OtherType>::value
617 && !boost::asio::is_same<CurrentType, OtherType>::value
618 >::type>
619{
620 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
621 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
622
623 typedef ex_fq_fr<OtherType, CurrentType> result_type;
624};
625
626#endif // !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_FREE_TRAIT)
627
628#if !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
629
630template <typename CurrentType, typename OtherType, typename Param>
631struct prefer_free<
632 ex_fq_fr<CurrentType, OtherType>, Param,
633 typename boost::asio::enable_if<
634 boost::asio::is_convertible<Param, CurrentType>::value
635 >::type>
636{
637 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
638 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
639
640 typedef ex_fq_fr<CurrentType, OtherType> result_type;
641};
642
643template <typename CurrentType, typename OtherType, typename Param>
644struct prefer_free<
645 ex_fq_fr<CurrentType, OtherType>, Param,
646 typename boost::asio::enable_if<
647 boost::asio::is_convertible<Param, OtherType>::value
648 && !boost::asio::is_same<CurrentType, OtherType>::value
649 >::type>
650{
651 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_valid = true);
652 BOOST_ASIO_STATIC_CONSTEXPR(bool, is_noexcept = true);
653
654 typedef ex_fq_fr<OtherType, CurrentType> result_type;
655};
656
657#endif // !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
658
659} // namespace traits
660} // namespace asio
661} // namespace boost
662
663template <typename Executor, typename Param, bool ExpectedResult>
664void test_can_query()
665{
666 BOOST_ASIO_CONSTEXPR bool b1 =
667 boost::asio::can_query<Executor, Param>::value;
668 BOOST_ASIO_CHECK(b1 == ExpectedResult);
669
670 BOOST_ASIO_CONSTEXPR bool b2 =
671 boost::asio::can_query<const Executor, Param>::value;
672 BOOST_ASIO_CHECK(b2 == ExpectedResult);
673
674 BOOST_ASIO_CONSTEXPR bool b3 =
675 boost::asio::can_query<Executor&, Param>::value;
676 BOOST_ASIO_CHECK(b3 == ExpectedResult);
677
678 BOOST_ASIO_CONSTEXPR bool b4 =
679 boost::asio::can_query<const Executor&, Param>::value;
680 BOOST_ASIO_CHECK(b4 == ExpectedResult);
681}
682
683template <typename Executor, typename Param, typename ExpectedResult>
684void test_query()
685{
686 exec::blocking_adaptation_t result1 = boost::asio::query(Executor(), Param());
687 BOOST_ASIO_CHECK(result1 == ExpectedResult());
688
689 Executor ex1 = {};
690 exec::blocking_adaptation_t result2 = boost::asio::query(ex1, Param());
691 BOOST_ASIO_CHECK(result2 == ExpectedResult());
692
693 const Executor ex2 = {};
694 exec::blocking_adaptation_t result3 = boost::asio::query(ex2, Param());
695 BOOST_ASIO_CHECK(result3 == ExpectedResult());
696}
697
698template <typename Executor, typename Param, typename ExpectedResult>
699void test_constexpr_query()
700{
701#if defined(BOOST_ASIO_HAS_CONSTEXPR)
702 constexpr Executor ex1 = {};
703 constexpr exec::blocking_adaptation_t result1 = boost::asio::query(ex1, Param());
704 BOOST_ASIO_CHECK(result1 == ExpectedResult());
705#endif // defined(BOOST_ASIO_HAS_CONSTEXPR)
706}
707
708template <typename Executor, typename Param, bool ExpectedResult>
709void test_can_require()
710{
711 BOOST_ASIO_CONSTEXPR bool b1 =
712 boost::asio::can_require<Executor, Param>::value;
713 BOOST_ASIO_CHECK(b1 == ExpectedResult);
714
715 BOOST_ASIO_CONSTEXPR bool b2 =
716 boost::asio::can_require<const Executor, Param>::value;
717 BOOST_ASIO_CHECK(b2 == ExpectedResult);
718
719 BOOST_ASIO_CONSTEXPR bool b3 =
720 boost::asio::can_require<Executor&, Param>::value;
721 BOOST_ASIO_CHECK(b3 == ExpectedResult);
722
723 BOOST_ASIO_CONSTEXPR bool b4 =
724 boost::asio::can_require<const Executor&, Param>::value;
725 BOOST_ASIO_CHECK(b4 == ExpectedResult);
726}
727
728void do_nothing()
729{
730}
731
732template <typename Executor, typename Param, typename ExpectedResult>
733void test_require()
734{
735 BOOST_ASIO_CHECK(
736 boost::asio::query(
737 boost::asio::require(Executor(), Param()),
738 Param()) == ExpectedResult());
739
740 Executor ex1 = {};
741
742 BOOST_ASIO_CHECK(
743 boost::asio::query(
744 boost::asio::require(ex1, Param()),
745 Param()) == ExpectedResult());
746
747 BOOST_ASIO_CHECK((
748 boost::asio::execution::is_executor<
749 typename boost::asio::decay<
750 typename boost::asio::require_result<Executor&, Param>::type
751 >::type
752 >::value));
753
754 const Executor ex2 = {};
755
756 BOOST_ASIO_CHECK(
757 boost::asio::query(
758 boost::asio::require(ex2, Param()),
759 Param()) == ExpectedResult());
760
761 BOOST_ASIO_CHECK((
762 boost::asio::execution::is_executor<
763 typename boost::asio::decay<
764 typename boost::asio::require_result<const Executor&, Param>::type
765 >::type
766 >::value));
767}
768
769template <typename Executor, typename Param, bool ExpectedResult>
770void test_can_prefer()
771{
772 BOOST_ASIO_CONSTEXPR bool b1 =
773 boost::asio::can_prefer<Executor, Param>::value;
774 BOOST_ASIO_CHECK(b1 == ExpectedResult);
775
776 BOOST_ASIO_CONSTEXPR bool b2 =
777 boost::asio::can_prefer<const Executor, Param>::value;
778 BOOST_ASIO_CHECK(b2 == ExpectedResult);
779
780 BOOST_ASIO_CONSTEXPR bool b3 =
781 boost::asio::can_prefer<Executor&, Param>::value;
782 BOOST_ASIO_CHECK(b3 == ExpectedResult);
783
784 BOOST_ASIO_CONSTEXPR bool b4 =
785 boost::asio::can_prefer<const Executor&, Param>::value;
786 BOOST_ASIO_CHECK(b4 == ExpectedResult);
787}
788
789template <typename Executor, typename Param, typename ExpectedResult>
790void test_prefer()
791{
792 BOOST_ASIO_CHECK(
793 s(boost::asio::query(
794 boost::asio::prefer(Executor(), Param()),
795 s())) == s(ExpectedResult()));
796
797 Executor ex1 = {};
798 BOOST_ASIO_CHECK(
799 s(boost::asio::query(
800 boost::asio::prefer(ex1, Param()),
801 s())) == s(ExpectedResult()));
802
803 const Executor ex2 = {};
804 BOOST_ASIO_CHECK(
805 s(boost::asio::query(
806 boost::asio::prefer(ex2, Param()),
807 s())) == s(ExpectedResult()));
808}
809
810void test_vars()
811{
812 BOOST_ASIO_CHECK(s() == exec::blocking_adaptation);
813 BOOST_ASIO_CHECK(n1() == exec::blocking_adaptation.disallowed);
814 BOOST_ASIO_CHECK(n2() == exec::blocking_adaptation.allowed);
815}
816
817BOOST_ASIO_TEST_SUITE
818(
819 "blocking_adaptation",
820
821 BOOST_ASIO_TEST_CASE3(test_can_query<ex_nq_nr, s, true>)
822 BOOST_ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n1, true>)
823 BOOST_ASIO_TEST_CASE3(test_can_query<ex_nq_nr, n2, false>)
824
825 BOOST_ASIO_TEST_CASE3(test_query<ex_nq_nr, s, n1>)
826 BOOST_ASIO_TEST_CASE3(test_query<ex_nq_nr, n1, n1>)
827
828 BOOST_ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, s, n1>)
829 BOOST_ASIO_TEST_CASE3(test_constexpr_query<ex_nq_nr, n1, n1>)
830
831 BOOST_ASIO_TEST_CASE3(test_can_require<ex_nq_nr, s, false>)
832 BOOST_ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n1, true>)
833 BOOST_ASIO_TEST_CASE3(test_can_require<ex_nq_nr, n2, true>)
834
835 BOOST_ASIO_TEST_CASE3(test_require<ex_nq_nr, n1, n1>)
836 BOOST_ASIO_TEST_CASE3(test_require<ex_nq_nr, n2, n2>)
837
838 BOOST_ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, s, false>)
839 BOOST_ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n1, true>)
840 BOOST_ASIO_TEST_CASE3(test_can_prefer<ex_nq_nr, n2, false>)
841
842 BOOST_ASIO_TEST_CASE3(test_prefer<ex_nq_nr, n1, n1>)
843
844 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, s, true>)
845 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n1, true>)
846 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n1>, n2, true>)
847 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, s, true>)
848 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n1, true>)
849 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, s, n2>, n2, true>)
850 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, s, true>)
851 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n1, true>)
852 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n1>, n2, false>)
853 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, s, true>)
854 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n1, true>)
855 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n1, n2>, n2, false>)
856 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, s, true>)
857 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n1, false>)
858 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n1>, n2, true>)
859 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, s, true>)
860 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n1, false>)
861 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<s, n2, n2>, n2, true>)
862 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, s, true>)
863 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n1, true>)
864 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n1, s, n1>, n2, true>)
865 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, s, true>)
866 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n1, true>)
867 BOOST_ASIO_TEST_CASE5(test_can_query<ex_cq_nr<n2, s, n2>, n2, true>)
868
869 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, s, n1>)
870 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n1, n1>)
871 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n1>, n2, n1>)
872 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, s, n2>)
873 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n1, n2>)
874 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, s, n2>, n2, n2>)
875 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, s, n1>)
876 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n1>, n1, n1>)
877 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, s, n2>)
878 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n1, n2>, n1, n2>)
879 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, s, n1>)
880 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n1>, n2, n1>)
881 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, s, n2>)
882 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<s, n2, n2>, n2, n2>)
883 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, s, n1>)
884 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n1, n1>)
885 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n1, s, n1>, n2, n1>)
886 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, s, n2>)
887 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n1, n2>)
888 BOOST_ASIO_TEST_CASE5(test_query<ex_cq_nr<n2, s, n2>, n2, n2>)
889
890 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, s, n1>)
891 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n1, n1>)
892 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n1>, n2, n1>)
893 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, s, n2>)
894 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n1, n2>)
895 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, s, n2>, n2, n2>)
896 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, s, n1>)
897 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n1>, n1, n1>)
898 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, s, n2>)
899 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n1, n2>, n1, n2>)
900 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, s, n1>)
901 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n1>, n2, n1>)
902 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, s, n2>)
903 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<s, n2, n2>, n2, n2>)
904 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, s, n1>)
905 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n1, n1>)
906 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n1, s, n1>, n2, n1>)
907 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, s, n2>)
908 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n1, n2>)
909 BOOST_ASIO_TEST_CASE5(test_constexpr_query<ex_cq_nr<n2, s, n2>, n2, n2>)
910
911 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, s, false>)
912 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n1, true>)
913 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n1>, n2, true>)
914 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, s, false>)
915 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n1, false>)
916 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, s, n2>, n2, true>)
917 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, s, false>)
918 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n1, true>)
919 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n1>, n2, true>)
920 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, s, false>)
921 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n1, false>)
922 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n1, n2>, n2, true>)
923 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, s, false>)
924 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n1, false>)
925 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n1>, n2, true>)
926 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, s, false>)
927 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n1, false>)
928 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<s, n2, n2>, n2, true>)
929 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, s, false>)
930 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n1, true>)
931 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n1, s, n1>, n2, true>)
932 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, s, false>)
933 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n1, false>)
934 BOOST_ASIO_TEST_CASE5(test_can_require<ex_cq_nr<n2, s, n2>, n2, true>)
935
936 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n1>, n1, n1>)
937 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n1>, n2, n2>)
938 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, s, n2>, n2, n2>)
939 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n1>, n1, n1>)
940 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n1>, n2, n2>)
941 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n1, n2>, n2, n2>)
942 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n2, n1>, n2, n2>)
943 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<s, n2, n2>, n2, n2>)
944 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<n1, s, n1>, n1, n1>)
945 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<n1, s, n1>, n2, n2>)
946 BOOST_ASIO_TEST_CASE5(test_require<ex_cq_nr<n2, s, n2>, n2, n2>)
947
948 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, s, false>)
949 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n1, true>)
950 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n1>, n2, false>)
951 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, s, false>)
952 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n1, true>)
953 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, s, n2>, n2, false>)
954 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, s, false>)
955 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n1, true>)
956 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n1>, n2, false>)
957 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, s, false>)
958 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n1, true>)
959 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n1, n2>, n2, false>)
960 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, s, false>)
961 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n1, true>)
962 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n1>, n2, false>)
963 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, s, false>)
964 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n1, true>)
965 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<s, n2, n2>, n2, false>)
966 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, s, false>)
967 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n1, true>)
968 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n1, s, n1>, n2, false>)
969 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, s, false>)
970 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n1, true>)
971 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_cq_nr<n2, s, n2>, n2, false>)
972
973 BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n1>, n1, n1>)
974 BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, s, n2>, n1, n2>)
975 BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n1>, n1, n1>)
976 BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n1, n2>, n1, n2>)
977 BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n1>, n1, n1>)
978 BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<s, n2, n2>, n1, n2>)
979 BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n1, s, n1>, n1, n1>)
980 BOOST_ASIO_TEST_CASE5(test_prefer<ex_cq_nr<n2, s, n2>, n1, n2>)
981
982 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, s, true>)
983 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n1, true>)
984 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n1>, n2, true>)
985 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, s, true>)
986 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n1, true>)
987 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, s, n2>, n2, true>)
988 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, s, true>)
989 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n1, true>)
990 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n1>, n2, false>)
991 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, s, true>)
992 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n1, true>)
993 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n1, n2>, n2, false>)
994 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, s, true>)
995 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n1, false>)
996 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n1>, n2, true>)
997 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, s, true>)
998 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n1, false>)
999 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<s, n2, n2>, n2, true>)
1000 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, s, true>)
1001 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n1, true>)
1002 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n1, s, n1>, n2, true>)
1003 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, s, true>)
1004 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n1, true>)
1005 BOOST_ASIO_TEST_CASE5(test_can_query<ex_mq_nr<n2, s, n2>, n2, true>)
1006
1007 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, s, n1>)
1008 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n1, n1>)
1009 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n1>, n2, n1>)
1010 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, s, n2>)
1011 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n1, n2>)
1012 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, s, n2>, n2, n2>)
1013 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, s, n1>)
1014 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n1>, n1, n1>)
1015 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, s, n2>)
1016 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n1, n2>, n1, n2>)
1017 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, s, n1>)
1018 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n1>, n2, n1>)
1019 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, s, n2>)
1020 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<s, n2, n2>, n2, n2>)
1021 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, s, n1>)
1022 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n1, n1>)
1023 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n1, s, n1>, n2, n1>)
1024 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, s, n2>)
1025 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n1, n2>)
1026 BOOST_ASIO_TEST_CASE5(test_query<ex_mq_nr<n2, s, n2>, n2, n2>)
1027
1028 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, s, false>)
1029 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n1, false>)
1030 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n1>, n2, true>)
1031 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, s, false>)
1032 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n1, false>)
1033 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, s, n2>, n2, true>)
1034 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, s, false>)
1035 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n1, false>)
1036 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n1>, n2, true>)
1037 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, s, false>)
1038 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n1, false>)
1039 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n1, n2>, n2, true>)
1040 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, s, false>)
1041 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n1, false>)
1042 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n1>, n2, true>)
1043 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, s, false>)
1044 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n1, false>)
1045 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<s, n2, n2>, n2, true>)
1046 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, s, false>)
1047 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n1, false>)
1048 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n1, s, n1>, n2, true>)
1049 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, s, false>)
1050 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n1, false>)
1051 BOOST_ASIO_TEST_CASE5(test_can_require<ex_mq_nr<n2, s, n2>, n2, true>)
1052
1053 BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, s, n1>, n2, n2>)
1054 BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, s, n2>, n2, n2>)
1055 BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, n1, n1>, n2, n2>)
1056 BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, n1, n2>, n2, n2>)
1057 BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, n2, n1>, n2, n2>)
1058 BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<s, n2, n2>, n2, n2>)
1059 BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<n1, s, n1>, n2, n2>)
1060 BOOST_ASIO_TEST_CASE5(test_require<ex_mq_nr<n2, s, n2>, n2, n2>)
1061
1062 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, s, false>)
1063 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n1, true>)
1064 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n1>, n2, false>)
1065 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, s, false>)
1066 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n1, true>)
1067 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, s, n2>, n2, false>)
1068 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, s, false>)
1069 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n1, true>)
1070 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n1>, n2, false>)
1071 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, s, false>)
1072 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n1, true>)
1073 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n1, n2>, n2, false>)
1074 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, s, false>)
1075 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n1, true>)
1076 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n1>, n2, false>)
1077 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, s, false>)
1078 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n1, true>)
1079 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<s, n2, n2>, n2, false>)
1080 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, s, false>)
1081 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n1, true>)
1082 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n1, s, n1>, n2, false>)
1083 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, s, false>)
1084 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n1, true>)
1085 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_mq_nr<n2, s, n2>, n2, false>)
1086
1087 BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n1>, n1, n1>)
1088 BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, s, n2>, n1, n2>)
1089 BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n1>, n1, n1>)
1090 BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n1, n2>, n1, n2>)
1091 BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n1>, n1, n1>)
1092 BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<s, n2, n2>, n1, n2>)
1093 BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n1, s, n1>, n1, n1>)
1094 BOOST_ASIO_TEST_CASE5(test_prefer<ex_mq_nr<n2, s, n2>, n1, n2>)
1095
1096 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, s, true>)
1097 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n1, true>)
1098 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n1>, n2, true>)
1099 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, s, true>)
1100 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n1, true>)
1101 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, s, n2>, n2, true>)
1102 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, s, true>)
1103 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n1, true>)
1104 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n1>, n2, false>)
1105 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, s, true>)
1106 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n1, true>)
1107 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n1, n2>, n2, false>)
1108 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, s, true>)
1109 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n1, false>)
1110 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n1>, n2, true>)
1111 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, s, true>)
1112 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n1, false>)
1113 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<s, n2, n2>, n2, true>)
1114 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, s, true>)
1115 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n1, true>)
1116 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n1, s, n1>, n2, true>)
1117 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, s, true>)
1118 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n1, true>)
1119 BOOST_ASIO_TEST_CASE5(test_can_query<ex_fq_nr<n2, s, n2>, n2, true>)
1120
1121 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, s, n1>)
1122 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n1, n1>)
1123 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n1>, n2, n1>)
1124 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, s, n2>)
1125 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n1, n2>)
1126 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, s, n2>, n2, n2>)
1127 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, s, n1>)
1128 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n1>, n1, n1>)
1129 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, s, n2>)
1130 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n1, n2>, n1, n2>)
1131 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, s, n1>)
1132 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n1>, n2, n1>)
1133 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, s, n2>)
1134 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<s, n2, n2>, n2, n2>)
1135 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, s, n1>)
1136 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n1, n1>)
1137 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n1, s, n1>, n2, n1>)
1138 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, s, n2>)
1139 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n1, n2>)
1140 BOOST_ASIO_TEST_CASE5(test_query<ex_fq_nr<n2, s, n2>, n2, n2>)
1141
1142 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, s, false>)
1143 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n1, false>)
1144 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n1>, n2, true>)
1145 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, s, false>)
1146 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n1, false>)
1147 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, s, n2>, n2, true>)
1148 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, s, false>)
1149 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n1, false>)
1150 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n1>, n2, true>)
1151 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, s, false>)
1152 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n1, false>)
1153 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n1, n2>, n2, true>)
1154 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, s, false>)
1155 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n1, false>)
1156 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n1>, n2, true>)
1157 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, s, false>)
1158 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n1, false>)
1159 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<s, n2, n2>, n2, true>)
1160 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, s, false>)
1161 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n1, false>)
1162 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n1, s, n1>, n2, true>)
1163 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, s, false>)
1164 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n1, false>)
1165 BOOST_ASIO_TEST_CASE5(test_can_require<ex_fq_nr<n2, s, n2>, n2, true>)
1166
1167 BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, s, n1>, n2, n2>)
1168 BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, s, n2>, n2, n2>)
1169 BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, n1, n1>, n2, n2>)
1170 BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, n1, n2>, n2, n2>)
1171 BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, n2, n1>, n2, n2>)
1172 BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<s, n2, n2>, n2, n2>)
1173 BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<n1, s, n1>, n2, n2>)
1174 BOOST_ASIO_TEST_CASE5(test_require<ex_fq_nr<n2, s, n2>, n2, n2>)
1175
1176 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, s, false>)
1177 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n1, true>)
1178 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n1>, n2, false>)
1179 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, s, false>)
1180 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n1, true>)
1181 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, s, n2>, n2, false>)
1182 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, s, false>)
1183 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n1, true>)
1184 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n1>, n2, false>)
1185 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, s, false>)
1186 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n1, true>)
1187 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n1, n2>, n2, false>)
1188 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, s, false>)
1189 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n1, true>)
1190 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n1>, n2, false>)
1191 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, s, false>)
1192 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n1, true>)
1193 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<s, n2, n2>, n2, false>)
1194 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, s, false>)
1195 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n1, true>)
1196 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n1, s, n1>, n2, false>)
1197 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, s, false>)
1198 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n1, true>)
1199 BOOST_ASIO_TEST_CASE5(test_can_prefer<ex_fq_nr<n2, s, n2>, n2, false>)
1200
1201 BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n1>, n1, n1>)
1202 BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, s, n2>, n1, n2>)
1203 BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n1>, n1, n1>)
1204 BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n1, n2>, n1, n2>)
1205 BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n1>, n1, n1>)
1206 BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<s, n2, n2>, n1, n2>)
1207 BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n1, s, n1>, n1, n1>)
1208 BOOST_ASIO_TEST_CASE5(test_prefer<ex_fq_nr<n2, s, n2>, n1, n2>)
1209
1210 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, s, true>)
1211 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n1, true>)
1212 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n1>, n2, false>)
1213 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, s, true>)
1214 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n1, true>)
1215 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n1, n2>, n2, true>)
1216 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, s, true>)
1217 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n1, true>)
1218 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n1>, n2, true>)
1219 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, s, true>)
1220 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n1, false>)
1221 BOOST_ASIO_TEST_CASE4(test_can_query<ex_mq_mr<n2, n2>, n2, true>)
1222
1223 BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, s, n1>)
1224 BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n1>, n1, n1>)
1225 BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, s, n1>)
1226 BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n1, n2>, n1, n1>)
1227 BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, s, n2>)
1228 BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n1>, n2, n2>)
1229 BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, s, n2>)
1230 BOOST_ASIO_TEST_CASE4(test_query<ex_mq_mr<n2, n2>, n2, n2>)
1231
1232 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, s, false>)
1233 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n1, true>)
1234 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n1>, n2, true>)
1235 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, s, false>)
1236 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n1, true>)
1237 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n1, n2>, n2, true>)
1238 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, s, false>)
1239 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n1, true>)
1240 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n1>, n2, true>)
1241 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, s, false>)
1242 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n1, false>)
1243 BOOST_ASIO_TEST_CASE4(test_can_require<ex_mq_mr<n2, n2>, n2, true>)
1244
1245 BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n1>, n1, n1>)
1246 BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n1>, n2, n2>)
1247 BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n1, n1>)
1248 BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n1, n2>, n2, n2>)
1249 BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n1, n1>)
1250 BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n1>, n2, n2>)
1251 BOOST_ASIO_TEST_CASE4(test_require<ex_mq_mr<n2, n2>, n2, n2>)
1252
1253 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, s, false>)
1254 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n1, true>)
1255 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n1>, n2, false>)
1256 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, s, false>)
1257 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n1, true>)
1258 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n1, n2>, n2, false>)
1259 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, s, false>)
1260 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n1, true>)
1261 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n1>, n2, false>)
1262 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, s, false>)
1263 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n1, true>)
1264 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_mq_mr<n2, n2>, n2, false>)
1265
1266 BOOST_ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n1>, n1, n1>)
1267 BOOST_ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n1, n2>, n1, n1>)
1268 BOOST_ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n1>, n1, n1>)
1269 BOOST_ASIO_TEST_CASE4(test_prefer<ex_mq_mr<n2, n2>, n1, n2>)
1270
1271 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, s, true>)
1272 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n1, true>)
1273 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n1>, n2, false>)
1274 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, s, true>)
1275 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n1, true>)
1276 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n1, n2>, n2, true>)
1277 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, s, true>)
1278 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n1, true>)
1279 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n1>, n2, true>)
1280 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, s, true>)
1281 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n1, false>)
1282 BOOST_ASIO_TEST_CASE4(test_can_query<ex_fq_fr<n2, n2>, n2, true>)
1283
1284 BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, s, n1>)
1285 BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n1>, n1, n1>)
1286 BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, s, n1>)
1287 BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n1, n2>, n1, n1>)
1288 BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, s, n2>)
1289 BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n1>, n2, n2>)
1290 BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, s, n2>)
1291 BOOST_ASIO_TEST_CASE4(test_query<ex_fq_fr<n2, n2>, n2, n2>)
1292
1293 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, s, false>)
1294 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n1, true>)
1295 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n1>, n2, true>)
1296 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, s, false>)
1297 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n1, true>)
1298 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n1, n2>, n2, true>)
1299 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, s, false>)
1300 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n1, true>)
1301 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n1>, n2, true>)
1302 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, s, false>)
1303 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n1, false>)
1304 BOOST_ASIO_TEST_CASE4(test_can_require<ex_fq_fr<n2, n2>, n2, true>)
1305
1306 BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n1>, n1, n1>)
1307 BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n1>, n2, n2>)
1308 BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n1, n1>)
1309 BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n1, n2>, n2, n2>)
1310 BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n1, n1>)
1311 BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n1>, n2, n2>)
1312 BOOST_ASIO_TEST_CASE4(test_require<ex_fq_fr<n2, n2>, n2, n2>)
1313
1314 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, s, false>)
1315 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n1, true>)
1316 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n1>, n2, false>)
1317 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, s, false>)
1318 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n1, true>)
1319 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n1, n2>, n2, false>)
1320 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, s, false>)
1321 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n1, true>)
1322 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n1>, n2, false>)
1323 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, s, false>)
1324 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n1, true>)
1325 BOOST_ASIO_TEST_CASE4(test_can_prefer<ex_fq_fr<n2, n2>, n2, false>)
1326
1327 BOOST_ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n1>, n1, n1>)
1328 BOOST_ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n1, n2>, n1, n1>)
1329 BOOST_ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n1>, n1, n1>)
1330 BOOST_ASIO_TEST_CASE4(test_prefer<ex_fq_fr<n2, n2>, n1, n2>)
1331
1332 BOOST_ASIO_TEST_CASE(test_vars)
1333)