0
我試圖編寫一個函數,允許用戶指定chrono::duration
,如chrono::seconds
並返回chrono::duration::count
的結果。帶chrono :: duration參數並返回chrono :: duration :: count的函數的模板函數
我能夠做到這一點使用下面的模板函數:
template<typename D, typename Rep>
Rep getTimeSinceStart(){
return chrono::duration_cast<D>(chrono::steady_clock::now() - start).count();
};
調用這個函數,我必須爲Rep
指定類型。例如,假設我有一個名爲timer
一個對象,如果Rep
是long long
:
long long sinceStart = timer.getTimeSinceStart<chrono::seconds, long long>();
但是,有沒有辦法只有指定chrono::duration
?
我的想法是這樣的:
template<typename D>
D.rep getTimeSinceStart(){
return chrono::duration_cast<D>(chrono::steady_clock::now() - start).count();
};
這樣我可以只叫:
long long sinceStart = timer.getTimeSinceStart<chrono::seconds>();
太棒了!你可能可以告訴我相對比較新的模板。我不知道我需要在返回值的'D :: rep'之前指定'typename'。如果你有一個參考,我可以閱讀更多關於這一點,我會欣賞方向。 – user3731622
深呼吸:http://en.cppreference.com/w/cpp/language/dependent_name –