Thanks for the help! And I don't use vectors for this project because it has a huge amount of iterations and I found vector pushback to be very slow.. but thanks for the suggestion anyway!
Though move-construct with push_back() is possible, favour reserve() and construct in-place with emplace_back().
The performance would be measurably better than that with a C-style array of pointers to individually allocated thread objects (one dynamic allocation instead of many, no extra level of indirection and better memory locality).