Using std::chrono literals for time units

In C++, the <chrono> library provides a set of types and functions for dealing with time-related operations. One useful feature of this library is the ability to use literals to specify time units.

Literal suffixes for time units

The <chrono> library defines a set of literal suffixes that can be appended to numeric literals to specify time units. These suffixes make it easy to write code that is more readable and self-explanatory.

Here are the common literal suffixes for time units:

Example usage

Let’s see an example of how to use these literal suffixes to specify time units:

#include <iostream>
#include <chrono>

int main() {
    using namespace std::chrono_literals;
    
    // Specifying a time duration of 2 seconds
    auto duration = 2s;
    
    // Specifying a time duration of 500 milliseconds
    auto halfSecond = 500ms;
    
    // Adding two durations
    auto totalDuration = duration + halfSecond;
    
    // Printing the total duration in milliseconds
    std::cout << "Total duration: " << std::chrono::duration_cast<std::chrono::milliseconds>(totalDuration).count()
              << " milliseconds\n";
    
    return 0;
}

In the above code, we include the <chrono> header and use the using namespace std::chrono_literals declaration to enable the usage of the literal suffixes. We then create two variables duration and halfSecond with time durations of 2 seconds and 500 milliseconds, respectively. We add these two durations together and convert the resultant duration to milliseconds using duration_cast. Finally, we print the total duration in milliseconds.

Benefits

Using literal suffixes for time units provides several benefits:

Conclusion

The <chrono> library in C++ provides a convenient way to specify time units using literal suffixes. This feature improves code readability, provides compile-time type checking, and reduces the chances of making mistakes. Leveraging these literals can make your time-related code more concise and expressive.

Give it a try in your next C++ project and experience the benefits of using std::chrono literals for time units.

References