多次呼叫你可以考虑类似generator的应用auto f = std::bind([](int& n) { return n++; }, 0);f(); f(); f();用lambda吧XD [=]() mutable { test_mov(std::move(a)); }如果 ??? 是 = 就和 std::bind 是一样的啊可是bind那样写也是没办法处理func是吃rvalue ref的情况
http://melpon.org/wandbox/permlink/i6hpL0VL93nEqzbz这个版本用lambda可以达到你要的效果 建立时先复制args一次然后因为只用一次 他会直接把复制的args move给func但若func要lvalue ref 会用template版本转成lvalue ref给它