【发布时间】:2023-04-11 00:49:02
【问题描述】:
std::is_signed<T> 和 std::numeric_limits<T>::is_signed 都应该给出关于 T 签名的答案。
为什么现在有两个符号指示符(即从 C++11 开始)?
【问题讨论】:
-
std::is_signed<T>是一个类型,而std::numeric_limits<T>::is_signed成员只是一个值。在元编程中,使用前者更方便,也更一致。 -
实际上你会在实践中使用
std::is_signed<T>::value。你会在哪里直接使用std::is_signed<T>? -
但是他们的结果有区别吗?
-
@Kevin:你对类型特征做了多少元编程?
-
@KevinBallard,您经常希望将诸如
is_signed的元函数传递给另一个元函数,例如apply或and_,而不是检查“结果”(即其value成员) 立即
标签: c++ c++11 std numeric-limits