[/ / Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) / / Distributed under the Boost Software License, Version 1.0. (See accompanying / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) /] [section:TimeTraits Time traits requirements] In the table below, `X` denotes a time traits class for time type `Time`, `t`, `t1`, and `t2` denote values of type `Time`, and `d` denotes a value of type `X::duration_type`. [table TimeTraits requirements [[expression] [return type] [assertion/note[br]pre/post-condition]] [ [`X::time_type`] [`Time`] [ Represents an absolute time. Must support default construction, and meet the requirements for `CopyConstructible` and `Assignable`. ] ] [ [`X::duration_type`] [] [ Represents the difference between two absolute times. Must support default construction, and meet the requirements for `CopyConstructible` and `Assignable`. A duration can be positive, negative, or zero. ] ] [ [`X::now();`] [`time_type`] [ Returns the current time. ] ] [ [`X::add(t, d);`] [`time_type`] [ Returns a new absolute time resulting from adding the duration `d` to the absolute time `t`. ] ] [ [`X::subtract(t1, t2);`] [`duration_type`] [ Returns the duration resulting from subtracting `t2` from `t1`. ] ] [ [`X::less_than(t1, t2);`] [`bool`] [ Returns whether `t1` is to be treated as less than `t2`. ] ] [ [`X::to_posix_duration(d);`] [`date_time::time_duration_type`] [ Returns the `date_time::time_duration_type` value that most closely represents the duration `d`. ] ] ] [endsect]