@@ -219,6 +219,7 @@ class inline_or_executor
219219 return asio::query (executor_, p);
220220 }
221221
222+ #if 0
222223 /// Obtain an executor with the @c blocking.possibly property.
223224 /**
224225 * Do not call this function directly. It is intended for use with the
@@ -231,7 +232,7 @@ class inline_or_executor
231232 */
232233 inline_or_executor<Executor, execution::blocking_t::possibly_t,
233234 InlineExceptionHandling>
234- require (execution::blocking_t ::possibly_t ) const noexcept
235+ require(const execution::blocking_t::possibly_t& ) const noexcept
235236 {
236237 return inline_or_executor<Executor, execution::blocking_t::possibly_t,
237238 InlineExceptionHandling>(executor_);
@@ -249,7 +250,7 @@ class inline_or_executor
249250 */
250251 inline_or_executor<Executor, execution::blocking_t::always_t,
251252 InlineExceptionHandling>
252- require (execution::blocking_t ::always_t ) const noexcept
253+ require(const execution::blocking_t::always_t& ) const noexcept
253254 {
254255 return inline_or_executor<Executor, execution::blocking_t::always_t,
255256 InlineExceptionHandling>(executor_);
@@ -265,16 +266,9 @@ class inline_or_executor
265266 * auto ex2 = asio::require(ex1,
266267 * asio::execution::blocking.never); @endcode
267268 */
268- template <typename Property>
269269 inline_or_executor<Executor, execution::blocking_t::never_t,
270270 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
271+ require(const execution::blocking_t::never_t&) const noexcept
278272 {
279273 return inline_or_executor<Executor, execution::blocking_t::never_t,
280274 InlineExceptionHandling>(executor_);
@@ -293,7 +287,8 @@ class inline_or_executor
293287 */
294288 inline_or_executor<Executor, Blocking,
295289 execution::inline_exception_handling_t::propagate_t>
296- require (execution::inline_exception_handling_t ::propagate_t ) const noexcept
290+ require(const execution::inline_exception_handling_t::propagate_t&)
291+ const noexcept
297292 {
298293 return inline_or_executor<Executor, Blocking,
299294 execution::inline_exception_handling_t::propagate_t>(executor_);
@@ -311,8 +306,9 @@ class inline_or_executor
311306 * asio::execution::inline_exception_handling.terminate); @endcode
312307 */
313308 inline_or_executor<Executor, Blocking,
314- execution::inline_exception_handling_t ::propagate_t >
315- require (execution::inline_exception_handling_t ::terminate_t ) const noexcept
309+ execution::inline_exception_handling_t::terminate_t>
310+ require(const execution::inline_exception_handling_t::terminate_t&)
311+ const noexcept
316312 {
317313 return inline_or_executor<Executor, Blocking,
318314 execution::inline_exception_handling_t::terminate_t>(executor_);
@@ -329,24 +325,30 @@ class inline_or_executor
329325 * asio::execution::relationship.continuation); @endcode
330326 */
331327 template <typename Property>
332- inline_or_executor<decay_t <require_result_t <const Executor&, Property>>,
333- Blocking, InlineExceptionHandling>
334- require (const Property& p,
335- constraint_t <
336- can_require<const Executor&, Property>::value
337- > = 0 ,
338- constraint_t <
339- !is_convertible<Property, execution::blocking_t >::value
340- > = 0 ,
341- constraint_t <
342- !is_convertible<Property, execution::inline_exception_handling_t >::value
343- > = 0 ) const
328+ constraint_t<
329+ //can_require<const Executor&, Property>::value
330+ /*&& !is_convertible<Property,
331+ execution::blocking_t>::value
332+ && !is_convertible<Property,
333+ execution::inline_exception_handling_t>::value,*/
334+ !is_same<Property, execution::blocking_t::never_t>::value,
335+ inline_or_executor<decay_t<require_result_t<const Executor&, Property>>,
336+ Blocking, InlineExceptionHandling>
337+ >
338+ require(const Property& p) const
344339 noexcept(is_nothrow_require<const Executor&, Property>::value)
345340 {
346341 return inline_or_executor<
347342 decay_t<require_result_t<const Executor&, Property>>,
348343 Blocking, InlineExceptionHandling>(asio::require(executor_, p));
349344 }
345+ #endif
346+
347+ template <typename Property>
348+ inline_or_executor<decay_t <require_result_t <const Executor&, Property>>,
349+ Blocking, InlineExceptionHandling>
350+ require (const Property& p) const
351+ noexcept (is_nothrow_require<const Executor&, Property>::value);
350352
351353 // / Forward a preference to the underlying executor.
352354 /* *
0 commit comments