std::thread::~thread(3)

NAME
std::thread::~thread - std::thread::~thread

Synopsis
   ~thread(); (since C++11)
   Destroys the thread object.
   If *this has an associated thread (joinable() == true), std::terminate() is called.

Notes
   A thread object does not have an associated thread (and is safe to destroy) after
     * it was default-constructed.
     * it was moved from.
     * join() has been called.
     * detach() has been called.

Example
// Run this code
 #include <thread>
 using namespace std::chrono_literals;
 int main()
 {
     auto bleah = std::thread{[]{ std::this_thread::sleep_for(13ms); }};
 } // ~thread calls std::terminate()

Possible output:
 terminate called without an active exception

See also
                if the thread is joinable, then a stop is requested and the thread
   destructor joins
                (public member function of std::jthread)