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