@@ -231,7 +231,7 @@ class inline_or_executor
231231 */
232232 inline_or_executor<Executor, execution::blocking_t ::possibly_t ,
233233 InlineExceptionHandling>
234- require (execution::blocking_t ::possibly_t ) const noexcept
234+ require (const execution::blocking_t ::possibly_t & ) const noexcept
235235 {
236236 return inline_or_executor<Executor, execution::blocking_t ::possibly_t ,
237237 InlineExceptionHandling>(executor_);
@@ -249,7 +249,7 @@ class inline_or_executor
249249 */
250250 inline_or_executor<Executor, execution::blocking_t ::always_t ,
251251 InlineExceptionHandling>
252- require (execution::blocking_t ::always_t ) const noexcept
252+ require (const execution::blocking_t ::always_t & ) const noexcept
253253 {
254254 return inline_or_executor<Executor, execution::blocking_t ::always_t ,
255255 InlineExceptionHandling>(executor_);
@@ -265,16 +265,9 @@ class inline_or_executor
265265 * auto ex2 = asio::require(ex1,
266266 * asio::execution::blocking.never); @endcode
267267 */
268- template <typename Property>
269268 inline_or_executor<Executor, execution::blocking_t ::never_t ,
270269 InlineExceptionHandling>
271- require (const Property&,
272- constraint_t <
273- is_same<Property, execution::blocking_t ::never_t >::value
274- > = 0 ,
275- constraint_t <
276- can_require<const Executor&, Property>::value
277- > = 0 ) const noexcept
270+ require (const execution::blocking_t ::never_t &) const noexcept
278271 {
279272 return inline_or_executor<Executor, execution::blocking_t ::never_t ,
280273 InlineExceptionHandling>(executor_);
@@ -293,7 +286,8 @@ class inline_or_executor
293286 */
294287 inline_or_executor<Executor, Blocking,
295288 execution::inline_exception_handling_t ::propagate_t >
296- require (execution::inline_exception_handling_t ::propagate_t ) const noexcept
289+ require (const execution::inline_exception_handling_t ::propagate_t &)
290+ const noexcept
297291 {
298292 return inline_or_executor<Executor, Blocking,
299293 execution::inline_exception_handling_t ::propagate_t >(executor_);
@@ -311,8 +305,9 @@ class inline_or_executor
311305 * asio::execution::inline_exception_handling.terminate); @endcode
312306 */
313307 inline_or_executor<Executor, Blocking,
314- execution::inline_exception_handling_t ::propagate_t >
315- require (execution::inline_exception_handling_t ::terminate_t ) const noexcept
308+ execution::inline_exception_handling_t ::terminate_t >
309+ require (const execution::inline_exception_handling_t ::terminate_t &)
310+ const noexcept
316311 {
317312 return inline_or_executor<Executor, Blocking,
318313 execution::inline_exception_handling_t ::terminate_t >(executor_);
@@ -702,9 +697,9 @@ struct query_member<
702697#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
703698
704699template <typename Executor, typename Blocking,
705- typename InlineExceptionHandling, typename Property >
700+ typename InlineExceptionHandling>
706701struct require_member <
707- inline_or_executor<Executor, Blocking, InlineExceptionHandling>, Property,
702+ inline_or_executor<Executor, Blocking, InlineExceptionHandling>,
708703 execution::blocking_t ::possibly_t
709704 >
710705{
@@ -715,9 +710,9 @@ struct require_member<
715710};
716711
717712template <typename Executor, typename Blocking,
718- typename InlineExceptionHandling, typename Property >
713+ typename InlineExceptionHandling>
719714struct require_member <
720- inline_or_executor<Executor, Blocking, InlineExceptionHandling>, Property,
715+ inline_or_executor<Executor, Blocking, InlineExceptionHandling>,
721716 execution::blocking_t ::always_t
722717 >
723718{
@@ -728,9 +723,9 @@ struct require_member<
728723};
729724
730725template <typename Executor, typename Blocking,
731- typename InlineExceptionHandling, typename Property >
726+ typename InlineExceptionHandling>
732727struct require_member <
733- inline_or_executor<Executor, Blocking, InlineExceptionHandling>, Property,
728+ inline_or_executor<Executor, Blocking, InlineExceptionHandling>,
734729 execution::blocking_t ::never_t
735730 >
736731{
@@ -741,9 +736,9 @@ struct require_member<
741736};
742737
743738template <typename Executor, typename Blocking,
744- typename InlineExceptionHandling, typename Property >
739+ typename InlineExceptionHandling>
745740struct require_member <
746- inline_or_executor<Executor, Blocking, InlineExceptionHandling>, Property,
741+ inline_or_executor<Executor, Blocking, InlineExceptionHandling>,
747742 execution::inline_exception_handling_t ::propagate_t
748743 >
749744{
@@ -754,9 +749,9 @@ struct require_member<
754749};
755750
756751template <typename Executor, typename Blocking,
757- typename InlineExceptionHandling, typename Property >
752+ typename InlineExceptionHandling>
758753struct require_member <
759- inline_or_executor<Executor, Blocking, InlineExceptionHandling>, Property,
754+ inline_or_executor<Executor, Blocking, InlineExceptionHandling>,
760755 execution::inline_exception_handling_t ::terminate_t
761756 >
762757{
@@ -781,9 +776,10 @@ struct require_member<
781776{
782777 static constexpr bool is_valid = true ;
783778 static constexpr bool is_noexcept =
784- is_nothrow_require<Executor, Property>::value;
785- typedef inline_or_executor<decay_t <require_result_t <Executor, Property>>,
786- Blocking, InlineExceptionHandling> result_type;
779+ is_nothrow_require<const Executor&, Property>::value;
780+ typedef inline_or_executor<
781+ decay_t <require_result_t <const Executor&, Property>>,
782+ Blocking, InlineExceptionHandling> result_type;
787783};
788784
789785#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
@@ -802,9 +798,10 @@ struct prefer_member<
802798{
803799 static constexpr bool is_valid = true ;
804800 static constexpr bool is_noexcept =
805- is_nothrow_prefer<Executor, Property>::value;
806- typedef inline_or_executor<decay_t <prefer_result_t <Executor, Property>>,
807- Blocking, InlineExceptionHandling> result_type;
801+ is_nothrow_prefer<const Executor&, Property>::value;
802+ typedef inline_or_executor<
803+ decay_t <prefer_result_t <const Executor&, Property>>,
804+ Blocking, InlineExceptionHandling> result_type;
808805};
809806
810807#endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT)
0 commit comments