std::thread::hardware_concurrency(3)

NAME
std::thread::hardware_concurrency - std::thread::hardware_concurrency

Synopsis
   static unsigned int hardware_concurrency() noexcept; (since C++11)
   Returns the number of concurrent threads supported by the implementation. The value
   should be considered only a hint.

Parameters
   (none)

Return value
   Number of concurrent threads supported. If the value is not well defined or not
   computable, returns 0.

Example
// Run this code
 #include <iostream>
 #include <thread>
 int main()
 {
     unsigned int n = std::thread::hardware_concurrency();
     std::cout << n << " concurrent threads are supported.\n";
 }

Possible output:
 4 concurrent threads are supported.

See also
   hardware_destructive_interference_size min offset to avoid false sharing
   hardware_constructive_interference_size max offset to promote true sharing
   (C++17) (constant)