namespace std {
class thread::id {
public:
id() noexcept;
};
bool operator==(thread::id x, thread::id y) noexcept;
bool operator!=(thread::id x, thread::id y) noexcept;
bool operator<(thread::id x, thread::id y) noexcept;
bool operator<=(thread::id x, thread::id y) noexcept;
bool operator>(thread::id x, thread::id y) noexcept;
bool operator>=(thread::id x, thread::id y) noexcept;
template<class charT, class traits>
basic_ostream<charT, traits>&
operator<< (basic_ostream<charT, traits>& out, thread::id id);
// Hash support
template <class T> struct hash;
template <> struct hash<thread::id>;
}
Объект типа thread::id предоставляет уникальный идентификатор для каждого потока выполнения и одно отличное значение для всех thread объектов, которые не представляют поток выполнения ([thread.thread.class]). Каждый поток выполнения имеет связанный thread::id объект, который не равен thread::id объекту любого другого потока выполнения и который не равен thread::id объекту любого thread объекта, который не представляет потоки выполнения.
thread::id должен быть trivially copyable class. Библиотека может повторно использовать значение thread::id завершенного потока, который больше не может быть присоединен.
[ Note: Операторы отношения позволяют использовать thread::id объекты в качестве ключей в ассоциативных контейнерах. ] — end note
id() noexcept;
bool operator==(thread::id x, thread::id y) noexcept;
Returns: true только в том случае, если x и y представляют один и тот же поток выполнения или не представляют x ни y один поток выполнения.
bool operator!=(thread::id x, thread::id y) noexcept;
bool operator<(thread::id x, thread::id y) noexcept;
Returns: Такое значение, которое operator< представляет собой общий порядок, как описано в [alg.sorting].
bool operator<=(thread::id x, thread::id y) noexcept;
bool operator>(thread::id x, thread::id y) noexcept;
bool operator>=(thread::id x, thread::id y) noexcept;
template<class charT, class traits>
basic_ostream<charT, traits>&
operator<< (basic_ostream<charT, traits>& out, thread::id id);
Effects: Вставляет неопределенное текстовое представление id в out. Для двух объектов типа thread::id x и y, если x == y эти thread::id объекты будут иметь то же текстовое представление , и если x != y эти thread::id объекты имеют различные текстовые представления.
template <> struct hash<thread::id>;
Специализация включена ([unord.hash]).