3010. [networking.ts] uses_executor says "if a type T::executor_type exists"

Section: 13.11.1 [networking.ts::async.uses.executor.trait] Status: C++23 Submitter: Jonathan Wakely Opened: 2017-08-17 Last modified: 2023-11-22

Priority: 0

View all issues with C++23 status.

Discussion:

Addresses: networking.ts

[async.uses.executor.trait] p1 says "if a type T::executor_type exists" but we don't want it to be required to detect private or ambiguous types.

[ 2017-11-01 Moved to Tentatively Ready after 7 positive votes for P0 on c++std-lib. ]

[2018-3-17 Adopted in Jacksonville]

Proposed resolution:

This resolution is relative to N4656.

  1. Edit 13.11.1 [networking.ts::async.uses.executor.trait] as indicated:

    -1- Remark: Detects whether T has a nested executor_type that is convertible from Executor. Meets the BinaryTypeTrait requirements (C++Std [meta.rqmts]). The implementation provides a definition that is derived from true_type if a typethe qualified-id T::executor_type existsis valid and denotes a type and is_convertible<Executor, T::executor_type>::value != false, otherwise it is derived from false_type. A program may specialize this template […].