This is part of the <type_traits> header:
$TOPDIR/include/type_traits:
...
30 #ifndef _RWSTD_TYPE_TRAITS_INCLUDED
31 #define _RWSTD_TYPE_TRAITS_INCLUDED
32
33 #include <rw/_defs.h>
34
35 #ifdef _RWSTD_NO_EXT_CXX_0X
36 # error _RWSTD_NO_EXT_CXX_0X defined and C++0x header
included
37 #endif
...
Shouldn't lines 35-37 come before line 30 so the header isn't even
parsed if there is an include error? In other words:
...
#ifdef _RWSTD_NO_EXT_CXX_0X
# error _RWSTD_NO_EXT_CXX_0X defined and C++0x header included
#endif
#ifndef _RWSTD_TYPE_TRAITS_INCLUDED
#define _RWSTD_TYPE_TRAITS_INCLUDED
#include <rw/_defs.h>
...
It doesn't look conventional but, technically, it is slightly more
efficient.
Brad.