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 的变化。文档 p0548r1 将 operator+
的 return 类型和 duration
的 operator-
类型调整为包含:
constexpr common_type_t<duration> operator+() const;
constexpr common_type_t<duration> operator-() const;
显然 common_type_t
等同于 common_type<duration>::type
。基本原理基本上是与二进制 operator+
和 operator-
.
一致
我注意到在 libcxx 中实现的 std::chrono::duration
的一元 + 和 - 运算符具有 return 类型 typename common_type<duration>::type
。为什么它不像其他算术运算符那样简单 duration
?
这是 C++17 的变化。文档 p0548r1 将 operator+
的 return 类型和 duration
的 operator-
类型调整为包含:
constexpr common_type_t<duration> operator+() const;
constexpr common_type_t<duration> operator-() const;
显然 common_type_t
等同于 common_type<duration>::type
。基本原理基本上是与二进制 operator+
和 operator-
.