提交 33afa4e2 编写于 作者: B Behdad Esfahbod

Minor

上级 b961518b
...@@ -81,14 +81,13 @@ inline Type& StructAfter(TObject &X) ...@@ -81,14 +81,13 @@ inline Type& StructAfter(TObject &X)
* Size checking * Size checking
*/ */
#define ASSERT_SIZE(_thing, _size) ASSERT_STATIC (sizeof (_thing) == (_size)) #define _DEFINE_SIZE_ASSERTION(_compare) \
inline void _size_assertion (void) const \
#define _DEFINE_SIZE_ASSERTION(_size) \ { ASSERT_STATIC ((sizeof (*this)) _compare); }
inline void _size_assertion (void) const { ASSERT_SIZE (*this, _size); }
#define DEFINE_SIZE_STATIC(size) \ #define DEFINE_SIZE_STATIC(size) \
_DEFINE_SIZE_ASSERTION (size); \ _DEFINE_SIZE_ASSERTION (== (size)); \
static const unsigned int static_size = (size); \ static const unsigned int static_size = (size); \
static const unsigned int min_size = (size) static const unsigned int min_size = (size)
...@@ -97,14 +96,15 @@ inline Type& StructAfter(TObject &X) ...@@ -97,14 +96,15 @@ inline Type& StructAfter(TObject &X)
#define VAR0 (VAR+0) #define VAR0 (VAR+0)
#define DEFINE_SIZE_MIN(size) \ #define DEFINE_SIZE_MIN(size) \
_DEFINE_SIZE_ASSERTION (>= (size)); \
static const unsigned int min_size = (size) static const unsigned int min_size = (size)
#define DEFINE_SIZE_VAR(size, _var_type) \ #define DEFINE_SIZE_VAR(size, _var_type) \
_DEFINE_SIZE_ASSERTION ((size) + VAR0 * sizeof (_var_type)); \ _DEFINE_SIZE_ASSERTION (== (size) + VAR0 * sizeof (_var_type)); \
static const unsigned int min_size = (size) static const unsigned int min_size = (size)
#define DEFINE_SIZE_VAR2(size, _var_type1, _var_type2) \ #define DEFINE_SIZE_VAR2(size, _var_type1, _var_type2) \
_DEFINE_SIZE_ASSERTION ((size) + VAR0 * sizeof (_var_type1) + VAR0 * sizeof (_var_type2)); \ _DEFINE_SIZE_ASSERTION (== (size) + VAR0 * sizeof (_var_type1) + VAR0 * sizeof (_var_type2)); \
static const unsigned int min_size = (size) static const unsigned int min_size = (size)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册