FreeBSD Manual Pages
std::chrono::time_point(3) C++ Standard Libary std::chrono::time_point(3) NAME std::chrono::time_point - std::chrono::time_point Synopsis Defined in header <chrono> template< class Clock, (since C++11) class Duration = typename Clock::duration > class time_point; Class template std::chrono::time_point represents a point in time. It is implemented as if it stores a value of type Duration indicating the time inter- val from the start of the Clock's epoch. Clock must meet the requirements for Clock or be std::chrono::local_t (until C++23) (since C++20). Member types Member type Definition clock Clock, the clock on which this time point is measured duration Duration, a std::chrono::duration type used to measure the time since epoch rep Rep, an arithmetic type representing the number of ticks of the duration period Period, a std::ratio type representing the tick period of the duration Member functions constructor constructs a new time point (public member function) time_since_epoch returns the time point as duration since the start of its clock (public member function) operator+= modifies the time point by the given duration operator-= (public member function) operator++ operator++(int) increments or decrements the duration operator-- (public member function) operator--(int) (C++20) min returns the time point corresponding to the small- est duration [static] (public static member function) max returns the time point corresponding to the largest duration [static] (public static member function) Non-member functions operator+ performs add and subtract operations involving a time operator- point (C++11) (function template) operator== operator!= operator< operator<= operator> operator>= operator<=> compares two time points (C++11) (function template) (C++11)(removed in C++20) (C++11) (C++11) (C++11) (C++11) (C++20) time_point_cast converts a time point to another time point on the (C++11) same clock, with a different duration (function template) floor(std::chrono::time_point) converts a time_point to another, rounding down (C++17) (function template) ceil(std::chrono::time_point) converts a time_point to another, rounding up (C++17) (function template) round(std::chrono::time_point) converts a time_point to another, rounding to (C++17) nearest, ties to even (function template) Helper classes std::common_type<std::chrono::time_point> specializes the std::com- mon_type trait (C++11) (class template special- ization) Example // Run this code #include <algorithm> #include <iostream> #include <iomanip> #include <ctime> #include <chrono> void slow_motion() { static int a[] {1,2,3,4,5,6,7,8,9,10,11,12}; while (std::ranges::next_permutation(a).found) { } // generates 12! permutations } int main() { using namespace std::literals; // enables the usage of 24h, 1ms, 1s instead of // e.g. std::chrono::hours(24), ac- cordingly const std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now(); const std::time_t t_c = std::chrono::system_clock::to_time_t(now - 24h); std::cout << "24 hours ago, the time was " << std::put_time(std::localtime(&t_c), "%F %T.\n") << std::flush; const std::chrono::time_point<std::chrono::steady_clock> start = std::chrono::steady_clock::now(); slow_motion(); const auto end = std::chrono::steady_clock::now(); std::cout << "Slow calculations took " << std::chrono::duration_cast<std::chrono::microseconds>(end - start).count() << "s " << (end - start) / 1ms << "ms " // almost equivalent form of the above, but << (end - start) / 1s << "s.\n"; // using milliseconds and sec- onds accordingly } Possible output: 24 hours ago, the time was 2021-02-15 18:28:52. Slow calculations took 2090448s 2090ms 2s. See also duration a time interval (C++11) (class template) http://cppreference.com 2022.07.31 std::chrono::time_point(3)
NAME | Synopsis | Member types | Member functions | Non-member functions | Helper classes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::chrono::time_point&sektion=3&manpath=FreeBSD+Ports+15.0>
