Доброго времени суток!
Есть набор классов, экземпляр каждого класса должен создаваться в своем потоке. Было решено сделать это кортежами и сейчас я не догоняю, как поправить свой код (функцию RunThreads)...
template<class... Childrens> class TChild
{
private:
boost::tuple<Childrens*...> tupChild;
boost::thread* all_childs[sizeof...(Childrens)];
void RunThreads();
void StopThreads();
public:
....
}
template<class... Childrens>
void TChild<Childrens...>::RunThreads()
{
for(uint8_t i=0; i<sizeof...(Childrens);++i)
{
all_childs[i]=new boost::thread(
[this, i](){
tupChild.get<i>()=new *(boost::tuples::element<i,tupChild>::type);
});
}
}
error: expected expression
tupChild.get<i>()=new *(boost::tuples::element<i,tupChild>::type);
^
error: expected a type
tupChild.get<i>()=new *(boost::tuples::element<i,tupChild>::type);
^