//******************************************************** // The following code example is taken from the book // C++17 - The Complete Guide // by Nicolai M. Josuttis (www.josuttis.com) // http://www.cppstd17.com // // The code is licensed under a // Creative Commons Attribution 4.0 International License // http://creativecommons.org/licenses/by/4.0/ //******************************************************** #include #include std::ostream& operator<< (std::ostream& strm, const std::chrono::duration& dur) { return strm << dur.count() << "ms"; } template void roundAndAbs(T dur) { using namespace std::chrono; std::cout << dur << '\n'; std::cout << " abs(): " << abs(dur) << '\n'; std::cout << " cast: " << duration_cast(dur) << '\n'; std::cout << " floor(): " << floor(dur) << '\n'; std::cout << " ceil(): " << ceil(dur) << '\n'; std::cout << " round(): " << round(dur) << '\n'; } int main() { using namespace std::literals; roundAndAbs(3.33s); roundAndAbs(3.77s); roundAndAbs(-3.77s); }