如何在不使用命名空间 chrono 的情况下初始化 std::chrono::duration 常量?

zer*_*ort 2 c++ literals c++-chrono c++20

我想使用这个代码

static constexpr auto set_time = 1s;
Run Code Online (Sandbox Code Playgroud)

但我不想使用using namespace chrono;

错误 C3688 无效的文字后缀“s”;找不到文字运算符或文字运算符“operator”“s”的模式

M.M*_*M.M 6

该行完全等同于:

static constexpr auto set_time = std::literals::chrono_literals::operator""s(1);
Run Code Online (Sandbox Code Playgroud)

  • 只是 `std::chrono::seconds(1)` (5认同)
  • @StaceyGirl 剥猫皮的方法不止一种:)我认为你的方法只适用于整数,而我的方法可以适用于例如“1.5s”,并且可以扩展到其他计时文字 (2认同)