相关疑难解决方法(0)

C++ 14中的有符号位字段

我相信,直到C++ 14,声明为结构的结构域的某个字段int仍被解释为signed或者unsigned,解释是实现定义的.参考:http://en.cppreference.com/w/cpp/language/bit_field.

在C++ 14中仍然如此吗?即,下面的代码是否保证按照有意义工作?

#include <iostream>

struct X
{
    int f:3;
};

int main() 
{
    X x;
    x.f = -2; // is this going to be indeed signed? It seems so.
    std::cout << x.f << std::endl; // displays -2
}
Run Code Online (Sandbox Code Playgroud)

c++ bit-fields c++14

7
推荐指数
1
解决办法
878
查看次数

signed int vs int - 有没有办法在C++中区分它们?

是否有一个模板或方法哪一个可以用声明来区分signed int,并int在下面的例子中,像

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

c++ signed templates type-traits

0
推荐指数
1
解决办法
136
查看次数

C ++中signed,signed int和int之间的区别?

int,signed intsignedC++的数据类型有区别吗?


并且:如果它们将处理内存中所有相同数量的空间(它们在内存分配的上下文中是等效的),那么它们之间的编译/运行时间是否存在性能差异(这当然不会显着)对于类似以下的程序,但在初始化数百个该类型的变量时)?


如果有任何显着差异或任何编译器警告或错误,我对其中任何一个进行了测试:

signed int

#include <iostream>

int main()
{
    signed int a = 5;
    std::cout << "The number entered is " << a << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

int

#include <iostream>

int main()
{
    int a = 5;
    std::cout << "The number entered is " << a << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

signed

#include <iostream>

int main()
{
    signed a = 5;
    std::cout << "The number entered …
Run Code Online (Sandbox Code Playgroud)

c++ int signed types difference

-1
推荐指数
1
解决办法
487
查看次数

标签 统计

c++ ×3

signed ×2

bit-fields ×1

c++14 ×1

difference ×1

int ×1

templates ×1

type-traits ×1

types ×1