#include struct Gen { int value; int operator()() { return value++; } }; int transform(int v, std::mt19937& rng) { std::uniform_int_distribution d(-3, 3); return v + d(rng); } /* raw interface */ using Structure = alsk::S, Fn> >; using Links = alsk::L(), int(), int(alsk::arg::R<0>, alsk::arg::RNG) >, int(int, int) >; using Skeleton = alsk::BuildSkeletonT; int main() { auto algo = alsk::implement(); algo.skeleton.n = 10; algo.skeleton.task.task<0>() = Gen{5}; algo.executor.repeatability.upTo(8); algo.executor.cores = 8; auto r = algo(); std::printf("%d\n", r); }