pike.git / src / pike_macros.h

version» Context lines:

pike.git/src/pike_macros.h:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: pike_macros.h,v 1.42 2006/08/02 15:03:14 mast Exp $ + || $Id: pike_macros.h,v 1.43 2008/12/20 15:49:19 grubba Exp $   */      #ifndef MACROS_H   #define MACROS_H      #include "global.h"      #ifdef HAVE_SYS_PARAM_H   #include <sys/param.h>   #endif
pike.git/src/pike_macros.h:22:    PTR_TO_INT(& (((struct str_type *)NULL)->field))   #define BASEOF(ptr, str_type, field) \    ((struct str_type *)((char*)ptr - OFFSETOF(str_type, field)))   #ifdef __cplusplus   extern "C++" {    template<typename T> static inline int low_alignof_(T *ignored)    {    struct { char x; T y;} *bar = NULL;    return PTR_TO_INT(&bar->y);    } - }; + }   #define ALIGNOF(X) low_alignof_((X*)NULL)   #else   #define ALIGNOF(X) OFFSETOF({ char ignored_; X fooo_;}, fooo_)   #endif   /* #define ALIGNOF(X) PTR_TO_INT(&(((struct { char ignored_ ; X fooo_; } *)NULL)->fooo_)) */      #define NELEM(a) (sizeof (a) / sizeof ((a)[0]))   #define ALLOC_STRUCT(X) ( (struct X *)xalloc(sizeof(struct X)) )      #define MINIMUM(X,Y) ((X)<(Y)?(X):(Y))