User-defined literals for standard library types
Use case
Readable time durations for analysis timeouts.
Explanation
Some standard library literals: h, s, ms, us. Requires using namespace std::chrono_literals.
Code
#include <chrono>
#include <iostream>
#include <string>
#include <thread>
using namespace std::chrono_literals;
void analyzeWithTimeout(std::chrono::milliseconds timeout) {
std::cout << "Timeout: " << timeout.count() << "ms\n";
}
int main() {
auto analysisTimeout = 500ms;
auto longTimeout = 2s;
analyzeWithTimeout(analysisTimeout);
analyzeWithTimeout(longTimeout);
return 0;
}
Output
$ ./src/c++14/build/user-defined-literals-for-standard-library-types
Timeout: 500ms
Timeout: 2000ms