1
senghoo 2021-02-26 15:56:07 +08:00 2
|
4
senghoo 2021-02-26 16:27:44 +08:00
@ly90907 其实 C/C++的预处理就是字符串替换。如果有需要完全可以把#f 当作一个字符串,用常规的字符串处理函数把后面部分去掉再显示。
|
7
across 2021-02-26 16:36:20 +08:00 1
@ly90907
#define T(f,...) do { \ time_t start = clock(); \ f(__VA_ARGS__); \ cout << #f << " running time is " <<float(clock()-start)/CLOCKS_PER_SEC<<" s"<<endl; \ }while (0) T(function_a,10); |
10
ly90907 OP 最终以如下方式实现
#define PRINT_FUNCTION_TIME(f) do { \ time_t start = clock(); \ f; \ std::string output = #f; \ cout << output.substr(0, output.find_first_of("(")) + " time = " <<float(clock()-start)/CLOCKS_PER_SEC<<" s"<<endl; \ }while (0) PRINT_FUNCTION_TIME(test()); PRINT_FUNCTION_TIME(test2(a,b,c)); |
11
byaiu 2021-02-26 19:53:51 +08:00 via iPhone
这不是很多库都有的东西么……现在大众 cpp 的水平都这样了?
|