// move example #include <iostream> // std::cout #include<tuple> #include<ratio> #include<chrono> using namespace std; template<typename... Types> ostream& operator<<(ostream& os, const tuple<Types...>& t1) { os << '['; PRINT_TUPLE<0, sizeof...(Types), Types...>::print(os, t1); os << ']'; return os; } template<int index, int max, typename... Types> struct PRINT_TUPLE { static void print(ostream& os, const tuple<Types...>& t1) { os << get<index>(t1); if(index<max-1) os << ','; PRINT_TUPLE<index + 1, sizeof...(Types), Types...>::print(os, t1); } }; template<int max, typename... Types> struct PRINT_TUPLE<max,max,Types...> { static void print(ostream& os, const tuple<Types...>& t1) { } }; int main() { using namespace chrono; using days_type=duration<int, ratio<60 * 60 * 24>>; system_clock::time_point t1 = system_clock::now(); time_point<system_clock, days_type> today = time_point_cast<days_type>(system_clock::now()); cout << "距离1970年1月1日"<<today.time_since_epoch().count()<<"天" << endl; system_clock::time_point tp = system_clock::now(); //typedef chrono::time_point<system_clock> system_clock::time_point; tp += chrono::hours(24); time_point<system_clock, days_type> tomorrow=time_point_cast<days_type>(tp); cout << "距离1970年1月1日" << tomorrow.time_since_epoch().count() << "天" << endl; system_clock::duration du(11); //typedef chrono::duration<rep, period> system_clock::duration; cout <<"count:"<< du.count()<<",period:"<<system_clock::period::num<<'/'<<system_clock::period::den << endl; nanoseconds dn=duration_cast<nanoseconds>(du); cout <<"nanoseconds count:"<< dn.count()<< endl; system_clock::time_point t2 = system_clock::now(); cout << "程序运行时间:" << duration_cast<microseconds>(t2 - t1).count() <<"微秒"<< endl; system("pause"); return 0; }