title: C++17: how to control number of threads in execution policy?
body: <p>The C++17 standard introduced an execution policy parameter (e.g. <code>std::execution::par_unseq</code>) which can be passed to some of the functions in the <code>std</code> library to make them execute in parallel, e.g.:</p>
  
  <pre><code>std::copy(std::execution::par_unseq, obj1.begin(), obj1.end(), obj2.begin())
  </code></pre>
  
  <p>In other frameworks like OpenMP, it’s possible to set the maximum number of threads that it will use, e.g. <code>#pragma omp parallel num_threads(&lt;desired_numer&gt;)</code> to set it locally within the section, or <code>omp_set_num_threads(&lt;desired_number&gt;)</code> to set it within the calling scope.</p>
  
  <p>I’m wondering how can this be achieved in standard C++ for the execution policies.</p>