1 /* 2 * This is compile-time test for situation below not happen. 3 * STLport use many defines and auxilary structures, namespaces and templates 4 * that included via _prolog.h. After preprocessor phase we may see: 5 * 6 * extern "C" { 7 * 8 * namespace std { } 9 * 10 * 11 * This is bad, but acceptable. But in STLPORT_DEBUG mode we can see 12 * 13 * extern "C" { 14 * 15 * namespace std { 16 * namespace private { 17 * 18 * template <class _Dummy> 19 * class __stl_debug_engine { 20 * 21 * 22 * This lead to compile-time error. 23 * [This due to sys/types.h contains 24 * 25 * __BEGIN_DECLS 26 * #include <bits/types.h> 27 * 28 * 29 * i.e. include other headers within extern "C" { scope. Bad, but this is fact.] 30 * 31 * Origin of problem: STLport provide proxy-headers as for C++ headers, as for C 32 * headers. For C headers, we shouldn't expose C++ constructions, because system 33 * headers may include each other by unexpected way (from STLport point of view). 34 * 35 * - ptr, 2007-04-05 36 */ 37 38 #ifdef __unix 39 # include <sys/types.h> 40 #endif 41