: Either implicitly detaching or joining a
joinable() thread in its
destructor could result in difficult to debug correctness (for detach) or performance
(for join) bugs encountered only when an exception is thrown
. Thus the programmer must
ensure that the destructor is never executed while the thread is still joinable
. —
end note