blob: b9f7d1906c30b73464a833e8f5310fc4d6921422 [file] [log] [blame]
// Build don't link:
template <class STRUCT, class MEMBER> inline STRUCT *
setback(MEMBER *bp, MEMBER STRUCT::*offset)
{
if(!bp) return 0;
union { int i; MEMBER STRUCT::*of; } u;
u.of = offset;
return (STRUCT *) ((__SIZE_TYPE__) bp - u.i);
}
struct S
{
int i;
};
int main()
{
S s;
S* sp = setback (&s.i, &S::i);
}