Skip to content

Missing is_clock_v enforcement in Clause 32 [thread] headers #1680

@StephanTLavavej

Description

@StephanTLavavej

WG21-N4878 [thread.req.paramname]/1: "Throughout this Clause, the names of template parameters are used to express type requirements. [...] If a template parameter is named Clock, the corresponding template argument shall be a type C for which is_clock_v<C> is true; otherwise the program is ill-formed."

C++23 P2212R2 "Relax Requirements for time_point::clock" changes this to: "If a template parameter is named Clock, the corresponding template argument shall be a type C that meets the Cpp17Clock requirements ([time.clock.req]); the program is ill-formed if is_clock_v<C> is false."

Either way, is_clock_v is supposed to be enforced (via the "ill-formed" wording), yet our headers never use is_clock_v.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixedSomething works now, yay!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions