VirtualBox

Changeset 28619 in vbox for trunk/include/iprt


Ignore:
Timestamp:
Apr 22, 2010 10:40:45 PM (15 years ago)
Author:
vboxsync
Message:

iprt/assert.h: Added AssertCompileAdjacentMembers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/assert.h

    r27615 r28619  
    378378#endif
    379379
     380/** @def AssertCompileAdjacentMembers
     381 * Asserts that two structure members are adjacent.
     382 * @param   type    The type.
     383 * @param   member1 The first member.
     384 * @param   member2 The second member.
     385 */
     386#if defined(__GNUC__) && defined(__cplusplus)
     387# if __GNUC__ >= 4
     388#  define AssertCompileAdjacentMembers(type, member1, member2) \
     389    AssertCompile(__builtin_offsetof(type, member1) + RT_SIZEOFMEMB(type, member1) == __builtin_offsetof(type, member2))
     390# else
     391#  define AssertCompileAdjacentMembers(type, member1, member2) \
     392    AssertCompile(RT_OFFSETOF(type, member1) + RT_SIZEOFMEMB(type, member1) == RT_OFFSETOF(type, member2))
     393# endif
     394#else
     395# define AssertCompileAdjacentMembers(type, member1, member2) \
     396    AssertCompile(RT_OFFSETOF(type, member1) + RT_SIZEOFMEMB(type, member1) == RT_OFFSETOF(type, member2))
     397#endif
     398
    380399/** @} */
    381400
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette