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.

Reply via email to