小编Vad*_* S.的帖子

如何检查没有填充的struct的大小?

让我们假设我有一个结构:

struct A {
  uint16_t a;
  uint64_t b;
};
Run Code Online (Sandbox Code Playgroud)

有没有办法获得A w/o填充的大小?ie:所有成员的sizeof总和(即使它不是递归的).

通常sizeof(A) == 16. 我想__GCC_sizeof__(A) == 10.

我希望它在测试代码中不影响实际代码,这意味着在结构定义中没有"#pragma"s和no "__attribute__".(虽然它可以完成#ifdef TEST,但它非常难看).

它不必是便携式的,GCC足够了.

谢谢!

c c++ gcc

7
推荐指数
2
解决办法
2834
查看次数

编译时检查基类是否为"接口"

事实证明,我原本想要的可能不可能不涉及C++ 11我想稍微改变一下要求并问你是否可以实现这一点.

上一个问题

基本上我想在一个类继承自"interface"时检查编译时间.通过接口我的意思是仅使用纯虚方法的类.我想做以下代码:

template <typename T>
class Impl : public T {
public:
STATIC_ASSERT_INTERFACE(T);
};
Run Code Online (Sandbox Code Playgroud)

这里的行为是,如果T只有纯虚方法,那么它将编译,如果其中一个方法不是那么失败.

任何人都可以想到这样的事情吗?

c++ compilation

6
推荐指数
1
解决办法
873
查看次数

标签 统计

c++ ×2

c ×1

compilation ×1

gcc ×1