как в std::thread передать allocated класс?
Работает, если класс создавать на стеке, но мне нужно создать интерфейс, ну типа базовый класс, то есть Factory по настоящему создает new Binance, а binance наследуется от Market. я думал что должно быть всё просто, но нет, опять какие то сложности, думал сделать код красивым, но нет, видимо на c++ можно писать только код, который не прикольный. хотя в цикле можно сделать создание класса в стеке, но может есть вариант создать из выделенной памяти?
#include <thread>
#include "Binance.hpp"
#include "Markets.hpp"
#include "Factory.hpp"
struct Params {
const char *url;
const unsigned short port;
enum Markets type;
} Params[] = {
{ "wss://stream.binance.com/ws", 9443, Markets::BINANCE }
};
int main ( int argc, char **argv ) {
const int sizeOfParams = sizeof (Params) / sizeof (struct Params);
for ( int i = 0; i < sizeOfParams; i++ ) {
Market *market = FactoryNewMarket ( Params[i].url, Params[i].port, Params[i].type );
std::thread threadMarket ( market );
threadMarket.detach ( );
}
}