1 嵌套lambda表达式 写一个lambda表达式A,其入参是一个lambda表达式B: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include <cstdio> #include <iostream> namespace example01 { template<typename Func> void run_task(Func &&func) { int arg = 100; printf("1. arg >> %d\n", arg); /** * 定义一个别名,进行引用捕获 * (注意:引用捕获时,请考虑被捕获对象的生命周期) */ func([&i = arg]() mutable { ++i; printf("3. i == %d\n", i); throw std::logic_error("逻辑错误"); }); printf("6. arg << %d\n", arg); } inline void run() { //写一个lambda表达式A,其入参是一个lambda表达式B example01::run_task([](auto get_ex) { printf("2. start check\n"); try { get_ex(); } catch (std::exception &ex) { std::cout << "4.……

阅读全文