//LISTING 1 #ifndef CTASSERT_H #define CTASSERT_H // Use of ctassert, where E is a constant expression, // will cause a compile-time error unless E evaulates to // a nonzero integral value. template struct ctassert { enum { N = 1 - 2 * int(!t) }; // 1 if t is true, -1 if t is false. static char A[N]; }; template char ctassert::A[N]; #endif