У меня есть следующая функция:
template <class T>
void programManager(std::shared_ptr<BaseStrategy<T>> st,std::shared_ptr<SMDSSubscriber<T>> md){some code}
и это вызываемая функция для std :: thread
bac объявляется как:
std::shared_ptr<BaseStrategy<EZXOrderEventHandler>> bac = make_shared<BacStrategy<EZXOrderEventHandler>>
и md объявляеткак:
std::shared_ptr<SMDSSubscriber<EZXOrderEventHandler>> dataMarket = make_shared<SMDSSubscriber<EZXOrderEventHandler>>();
std::thread t2(&programManager,bac,dataMarket);
, и я получаю сообщение об ошибке:
ошибка: не соответствует функция для вызова 'std :: thread :: thread (, std :: shared_ptr> &, std :: shared_ptr> &) 'std :: thread t2 (& programManager, bac, dataMarket);
примечание: кандидат: шаблон std :: thread :: thread (_Callable &&, _Args && ...)поток (_Callable && __f, _Args && ... __args)
Ошибка вывода / замены аргумента шаблона:
/ home / yaodav / Desktop / git_repo / test / main.cpp: 347: 54: note: не удалось вывести параметр шаблона '_Callable'
std::thread t2(&programManager,bac,dataMarket);