// optimal number of fibers #include "work.h" #include int main() { const std::size_t F = std::thread::hardware_concurrency(); boost::fibers::fiber f[F]; for (std::size_t i = 0; i < F; ++i) f[i] = boost::fibers::fiber(work, i * N / F, (i + 1) * N / F); for (auto &i : f) i.join(); }