持續時間的標準使用者定義文字

Version >= C++ 14

namespace std::literals::chrono_literals 中宣告瞭以下持續時間使用者文字,其中 literalschrono_literals 都是內聯名稱空間 。使用 using namespace std::literalsusing namespace std::chrono_literalsusing namespace std::literals::chrono_literals 可以獲得對這些運算子的訪問。

#include <chrono>
#include <iostream>

int main()
{
    using namespace std::literals::chrono_literals;

    std::chrono::nanoseconds t1 = 600ns;
    std::chrono::microseconds t2 = 42us;
    std::chrono::milliseconds t3 = 51ms;
    std::chrono::seconds t4 = 61s;
    std::chrono::minutes t5 = 88min;
    auto t6 = 2 * 0.5h;

    auto total = t1 + t2 + t3 + t4 + t5 + t6;

    std::cout.precision(13);
    std::cout << total.count() << " nanoseconds" << std::endl; // 8941051042600 nanoseconds
    std::cout << std::chrono::duration_cast<std::chrono::hours>(total).count()
              << " hours" << std::endl; // 2 hours
}