1. #include <chrono>
    2. #include <utility>
    3. typedef std::chrono::high_resolution_clock::time_point TimeVar;
    4. #define duration(a) std::chrono::duration_cast<std::chrono::nanoseconds>(a).count()
    5. #define timeNow() std::chrono::high_resolution_clock::now()
    6. template<typename F, typename... Args>
    7. double funcTime(F func, Args&&... args){
    8. TimeVar t1=timeNow();
    9. func(std::forward<Args>(args)...);
    10. return duration(timeNow()-t1);
    11. }

    可变参数模板比之前写的宏高十万八千里。