Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
test_act 327.7 OK
test_async 306.7 OK
test_act 379.4 OK
test_async 337.2 OK
#define N_SIZE 10000000
#define N_THREADS 7
#define N_PARALLEL 73
N=100000000
test_act 3356 OK
test_async 2989 OK
N=10000000
test_act 327.2 OK
test_async 290.1 OK
N=100000000
test_act 3330 OK
test_async 3120 OK
N=10000000
test_act 330.2 OK
test_async 309.6 OK#define N_THREADS 3
#define N_PARALLEL 73some_type some_object;
control << act::make_task([&some_object](){some_object.some_method();});
control << act::make_task([some_object](){some_object.some_method();});
some_type some_object;
control << act::make_task([](some_type & some_object){some_object.some_method();}, std::ref(some_object));
template <typename T, typename ... Args>
std::shared_ptr<task<decltype(&T::operator())>> make_task(T func, Args ... args )
{
return std::shared_ptr<task<decltype(&T::operator())>>(new task<decltype(&T::operator())>(func, args ...));
}
decltype(&T::operator()) в двух местах, если же выше у Вас написано:template <typename T>
class task
: public task<decltype(&T::operator())>
{
};
Асинхронные задачи в С++11