如何为没有值的已声明 std::chrono::duration 赋值?

How to assign a value to a declared std::chrono::duration which has no value?

如何做相当于:

int n;
n = 1;

std::chrono::duration?

我不建议使用原始 duration 类型。而是使用特定的持续时间,例如 secondsnanoseconds

std::chrono::nanoseconds ns;
ns = std::chrono::nanoseconds { 10 };

虽然,如果你坚持,你可以使用你自己的专用duration类型:

std::chrono::duration<uint64_t, std::ratio<1, 1>> diff;
diff = std::chrono::seconds { 3 };
-- OR --
diff = std::chrono::duration<uint64_t, std::ratio<1, 1>> { 3 };

我推荐:

  • 当您不确定需要什么分辨率时使用 nanoseconds,因为它可以包含任何其他标准 chrono::duration 值并且它是标准类型
  • 尽量减少程序中未初始化的值