输出tuple和chrono的使用小例子

来源:互联网 发布:桌面定时提醒软件 编辑:程序博客网 时间:2024/06/06 08:34
// 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;}

0 0
原创粉丝点击