std::common_type 何时与单个参数一起使用?

When would std::common_type be used with a single argument?

我注意到在 libcxx 中实现的 std::chrono::duration 的一元 + 和 - 运算符具有 return 类型 typename common_type<duration>::type。为什么它不像其他算术运算符那样简单 duration

这是 C++17 的变化。文档 p0548r1operator+ 的 return 类型和 durationoperator- 类型调整为包含:

constexpr common_type_t<duration> operator+() const; 
constexpr common_type_t<duration> operator-() const;

显然 common_type_t 等同于 common_type<duration>::type。基本原理基本上是与二进制 operator+operator-.

一致