Proposed resolution:
Add a sentence to [thread.thread.id]/p1:
An object of type
thread::id
provides a unique identifier for each thread of execution and a single distinct value for all thread objects that do not represent a thread of execution ([thread.threads.class]). Each thread of execution has athread::id
that is not equal to thethread::id
of other threads of execution and that is not equal to thethread::id
ofstd::thread
objects that do not represent threads of execution. The library may reuse the value of athread::id
of a terminated thread that can no longer be joined.