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