siv*_*udh 0 c++ boost static-assert
假设我有3个班级.我希望sizeof()每个类都完全相同 - 比方说512个字节.
我如何使用类似的东西BOOST_STATIC_ASSERT来应用于所有这些
BOOST_STATIC_ASSERT在一个地方使用(DRY原则)注意:我们可以使用我们想要的任何C++技术(创建更多类,使用继承等)
我天真的解决方案如下:
class A { ...stuff }; BOOST_STATIC_ASSERT( sizeof(A) == 512 );
class B { ...stuff }; BOOST_STATIC_ASSERT( sizeof(B) == 512 );
class C { ...stuff }; BOOST_STATIC_ASSERT( sizeof(C) == 512 );
Run Code Online (Sandbox Code Playgroud)
这似乎适用于gcc 4.0.1和boost 1.39:
template <typename T, size_t S>
struct enforce_size
{
enforce_size()
{
BOOST_STATIC_ASSERT( sizeof( T ) == S );
}
};
class A: enforce_size<A,512> { /* stuff */ };
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |