c++ - 检查变量是否使用 is_signed 签名

标签 c++ c++17

我想检查变量是否有符号。我找到了一个名为 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 > 0price < 0分别。当然,这些只是运行时操作。

关于c++ - 检查变量是否使用 is_signed 签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54728010/

相关文章:

c++ - 如何在 mac os x 上安装量子计算语言?

c++ - 为什么 C++ 函数的命名标准不存在?

c++ 17 fold expression dot product simpfily

c++ - Boost.Program_Options:为什么 options_description_easy_init::operator() 没有 std::string 的重载?

C++ 原子变量不能相互赋值 : why? 可以吗?

c++ - gcc 相对于在新表达式中解析 type-id 发出错误

c++ - 使用 std::enable_if<> 的模板特化

c++ - Visual C++ 2010 native Intellisense 设置

c++ - 为什么我的 VC 2005 x64 调试 session 在第一次试用时总是失败(但在第二次试用时却没有)?

c++ - 将字符指针存储到容器中