I've got a class "Tester" containing a std:thread object, and an std::vector of "Tester". I understand that I can't copy threads, so the push_back is out of question, but why emplace_back is not working? Where is the copy in my code?
#include <iostream>
#include <thread>
#include <vector>
#include <functional>
#include <unistd.h>
class Tester
{
  public:
  Tester(std::function<void(void)> func) : 
    th(func)
  {
  }
  ~Tester()
  {
    th.join()
  }
  private:
  std::thread th;
};
std::vector<Tester> testers;
void InnerHelloWorld()
{
  std::cout << "Hello from the inner word!\n";
}
int main() {
  std::cout << "Hello World!\n";
  for(size_t i = 0 ; i < 4 ; i++)
  {
    testers.emplace_back(InnerHelloWorld);
  }
  sleep(1);
  return 0;
}
Aucun commentaire:
Enregistrer un commentaire