3421. Imperfect ADL emulation for boolean-testable

Section: 18.5.2 [concept.booleantestable] Status: C++23 Submitter: Davis Herring Opened: 2020-03-24 Last modified: 2023-11-22

Priority: 0

View all issues with C++23 status.

Discussion:

18.5.2 [concept.booleantestable]/4 checks for "a specialization of a class template that is a member of the same namespace as D", which ignores the possibility of inline namespaces.

[2020-04-18 Issue Prioritization]

Status set to Tentatively Ready after six positive votes on the reflector.

[2020-11-09 Approved In November virtual meeting. Status changed: Tentatively Ready → WP.]

Proposed resolution:

This wording is relative to N4861.

  1. Modify 18.5.2 [concept.booleantestable] as indicated:

    -4- A key parameter of a function template D is a function parameter of type cv X or reference thereto, where X names a specialization of a class template that has the same innermost enclosing non-inlineis a member of the same namespace as D, and X contains at least one template parameter that participates in template argument deduction. […]