std::chrono::time_point::time_point(3)

NAME
std::chrono::time_point::time_point - std::chrono::time_point::time_point

Synopsis
                        (since
   time_point(); C++11)
                        (until
                        C++14)
   constexpr time_point(); (since
                        C++14)
                        (since
   explicit time_point( const duration& d ); C++11)
                        (until
                        (1) C++14)
   constexpr explicit time_point( const duration& d ); (since
                        C++14)
                        (2) (since
   template< class Duration2 > C++11)
   time_point( const time_point<Clock,Duration2>& t ); (until
                        (3) C++14)
   template< class Duration2 > (since
   constexpr time_point( const C++14)
   time_point<Clock,Duration2>& t );
   Constructs a new time_point from one of several optional data sources.
   1) Default constructor, creates a time_point representing the Clock's epoch (i.e.,
   time_since_epoch() is zero).
   2) Constructs a time_point at Clock's epoch plus d.
   3) Constructs a time_point by converting t to duration. This constructor only
   participates in overload resolution if Duration2 is implicitly convertible to
   duration.

Parameters
   d - a duration to copy from
   t - a time_point to convert from

Example
// Run this code
 #include <chrono>
 #include <iostream>
 using Clock = std::chrono::high_resolution_clock;
 using TimePoint = std::chrono::time_point<Clock>;
 void print_ms(const TimePoint& point)
 {
     using Ms = std::chrono::milliseconds;
     const Clock::duration since_epoch = point.time_since_epoch();
     std::cout << std::chrono::duration_cast<Ms>(since_epoch).count() << " ms\n";
 }
 int main()
 {
     const TimePoint default_value = TimePoint(); // (1)
     print_ms(default_value); // 0 ms
     const Clock::duration duration_4_seconds = std::chrono::seconds(4);
     const TimePoint time_point_4_seconds(duration_4_seconds); // (2)
       // 4 seconds from start of epoch
     print_ms(time_point_4_seconds); // 4000 ms
     const TimePoint time_point_now = Clock::now(); // (3)
     print_ms(time_point_now); // 43098276 ms
 }

Possible output:
 0 ms
 4000 ms
 43098276 ms

See also
   constructor constructs new duration
                 (public member function of std::chrono::duration<Rep,Period>)
   duration_cast converts a duration to another, with a different tick interval
   (C++11) (function template)