Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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;
}

View on GitHub.

Output

$ ./src/c++14/build/user-defined-literals-for-standard-library-types
Timeout: 500ms
Timeout: 2000ms