void test_threads() { { std::cout << "non-async" << std::endl; std::vector<double> f1(fib(50)); std::vector<double> f2(fib(50)); std::vector<double> f3(fib(50)); std::vector<double> f4(fib(50)); std::vector<double> f_sum(f1 + f2 + f3 + f4); std::sort(f_sum.begin(), f_sum.end()); print_fib(f_sum); } { std::cout << "async" << std::endl; std::future<std::vector<double> > f1(std::async(std::launch::async, []() { return fib(50); })); std::future<std::vector<double> > f2(std::async(std::launch::async, []() { return fib(50); })); std::future<std::vector<double> > f3(std::async(std::launch::async, []() { return fib(50); })); std::future<std::vector<double> > f4(std::async(std::launch::async, []() { return fib(50); })); std::vector<double> f_sum(f1.get() + f2.get() + f3.get() + f4.get()); std::sort(f_sum.begin(), f_sum.end()); print_fib(f_sum); } }
int main(int argc, char *argv[]) { int i = 1; #ifdef FIBONACCI if (i < argc) { print_fib(atoi(argv[i])); i++; } #endif #ifdef REVERSE if (i < argc) { reverse(argv[i], strlen(argv[i])); i++; } #endif return 0; }
int main() { print_fib(2); return 0; }