有符号的int和int-有没有一种方法可以在C++中区分它们

signed int vs int - is there a way to tell them apart in C++?

本文关键字:方法 C++ 中区 一种 int 符号 int- 有没有      更新时间:2023-10-16

有没有一个模板或方法可以用来区分声明signed intint,比如下面的示例

signed int foo;
int bar;
static_assert(magic_signed<decltype(foo)>::value,"signed"); //PASS
static_assert(magic_signed<decltype(bar)>::value,"not signed"); //ASSERT

尽管signed intint相同,但我认为您的意思可能是如何区分unsigned intint。看看std::is_signed。它在c++11之后可以飞行。

https://en.cppreference.com/w/cpp/types/is_signed

还有一个std::is_unsigned

https://en.cppreference.com/w/cpp/types/is_unsigned

如果你真的想知道如何区分signed int和正常的int,我认为你不能,因为编译器隐含地将int理解为signed int,所以它们实际上是完全相同的东西。

看看这个。int和已签名的int声明之间的差异

intsigned intsigned属于同一类型。

CCD_ 16和CCD_。