相关疑难解决方法(0)

当A和B“相同”时断言(sizeof(A)== sizeof(B))是否安全?

假设我有两个类,它们的内存布局应该完全相同:

struct A {
    int x;
    int y;
};

/* possibly more code */

struct B {
    int a;
    int b;
};
Run Code Online (Sandbox Code Playgroud)

标准中是否有什么可以保证我可以安全地使用static_assert(sizeof(A) == sizeof(B))

作为较弱的变体,请考虑

struct C {
    int a;
};

static_assert( sizeof(A) >= sizeof(C) );   // can this ever fail?
static_assert( sizeof(A) >  sizeof(C) );   // can this ever fail?
Run Code Online (Sandbox Code Playgroud)

这个问题引发了这个问题。我天真地希望不会有任何断言失败,但是可以保证吗?

c++ sizeof language-lawyer

18
推荐指数
1
解决办法
501
查看次数

标签 统计

c++ ×1

language-lawyer ×1

sizeof ×1