Commit ab29808a919ac5e653d297a21dca25f3e1cbf853
1 parent
d33ddb9b
Fixing timer print
Showing
1 changed file
with
12 additions
and
8 deletions
include/CLI/Timer.hpp
| ... | ... | @@ -54,18 +54,22 @@ public: |
| 54 | 54 | time_point stop = clock::now(); |
| 55 | 55 | std::chrono::duration<double, std::milli> elapsed = stop - start_; |
| 56 | 56 | double time = elapsed.count(); |
| 57 | + | |
| 58 | + auto print_it = [](double x, std::string unit){ | |
| 59 | + char buffer[50]; | |
| 60 | + std::snprintf(buffer, 50, "%.5g", x); | |
| 61 | + return buffer + std::string(" ") + unit; | |
| 62 | + }; | |
| 57 | 63 | |
| 58 | 64 | // LCOV_EXCL_START |
| 59 | - if(time < 1) | |
| 60 | - return std::to_string(int(time*1000000)) + " ns"; | |
| 61 | - else if(time < 10) | |
| 62 | - return std::to_string(int(time*100) / 100.) + " ms"; | |
| 65 | + if(time < .001) | |
| 66 | + return print_it(time*1000000, "ns"); | |
| 67 | + else if(time < 1) | |
| 68 | + return print_it(time*1000, "us"); | |
| 63 | 69 | else if(time < 1000) |
| 64 | - return std::to_string(int(time)) + " ms"; | |
| 65 | - else if(time < 10000) | |
| 66 | - return std::to_string(int(time*10000) / 10. ) + " s"; | |
| 70 | + return print_it(time, "ms"); | |
| 67 | 71 | else |
| 68 | - return std::to_string(int(time*1000)) + " s"; | |
| 72 | + return print_it(time/1000, "s"); | |
| 69 | 73 | // LCOV_EXCL_END |
| 70 | 74 | } |
| 71 | 75 | ... | ... |