- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想检查变量是否有符号。我找到了一个名为 is_signed 的类模板但我不能使用它,因为我是 C++ 的新手。如何检查变量是否已签名?
#include <iostream>
#include <cmath>
int main() {
// the following short initialization is on purpose
short price {10u};
std::cout << std::is_signed<price>::value << '\n';
return 0;
}
最佳答案
is_signed
- 与许多其他结构一样,这是一种对类型 执行检查的方法 - 但不是对变量 执行检查。你可以使用 decltype
获取变量的基础类型。
std::cout << std::is_signed<decltype(price)>::value << '\n'; //-> 1
还有 - is_signed
在 <type_traits>
中定义而不是 <cmath>
.
如评论中所述;如果您的目的只是简单地查看变量是正数还是负数,则不需要任何库实用程序。
要获取 信息,请使用 price > 0
或 price < 0
分别。当然,这些只是运行时操作。
关于c++ - 检查变量是否使用 is_signed 签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54728010/
两者都是 std::is_signed和 std::numeric_limits::is_signed应该给出关于 T 的签名的答案. 为什么现在有两个符号指示符(即自 C++11 起)? 最佳答案
我想检查变量是否有符号。我找到了一个名为 is_signed 的类模板但我不能使用它,因为我是 C++ 的新手。如何检查变量是否已签名? #include #include int main()
谁能解释一下,为什么 #include #include using namespace std; enum E : signed int { a=-1, b = 1,}; int main()
我知道 std::numeric_limits::is_signed 永远是错误的,但对于 std::is_signed::value 也是如此吗? ?谢谢 最佳答案 std::is_signed定义
我有一个函数,但我想将它分成两个函数,一个用于返回有符号整数,一个用于返回无符号整数。看起来像 std::is_signed不是严格意义上的整数,所以我想我是否可以对类似 std::is_integr
我是一名优秀的程序员,十分优秀!