OgreStdHeaders.h

Go to the documentation of this file.
00001 #ifndef __StdHeaders_H__
00002 #define __StdHeaders_H__
00003 
00004 #ifdef __BORLANDC__
00005     #define __STD_ALGORITHM
00006 #endif
00007 
00008 #if defined ( OGRE_GCC_VISIBILITY )
00009 /* Until libstdc++ for gcc 4.2 is released, we have to declare all
00010  * symbols in libstdc++.so externally visible, otherwise we end up
00011  * with them marked as hidden by -fvisible=hidden.
00012  *
00013  * See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20218
00014  */
00015 #   pragma GCC visibility push(default)
00016 #endif
00017 
00018 #include <cassert>
00019 #include <cstdio>
00020 #include <cstdlib>
00021 #include <ctime>
00022 #include <cstring>
00023 #include <cstdarg>
00024 #include <cmath>
00025 
00026 // STL containers
00027 #include <vector>
00028 #include <map>
00029 #include <string>
00030 #include <set>
00031 #include <list>
00032 #include <deque>
00033 #include <queue>
00034 #include <bitset>
00035 
00036 // Note - not in the original STL, but exists in SGI STL and STLport
00037 // For gcc 4.3 see http://gcc.gnu.org/gcc-4.3/changes.html
00038 #if (OGRE_COMPILER == OGRE_COMPILER_GNUC) && !defined(STLPORT)
00039 #   if OGRE_COMP_VER >= 430
00040 #       include <tr1/unordered_map>
00041 #       include <tr1/unordered_set> 
00042 #   else
00043 #       include <ext/hash_map>
00044 #       include <ext/hash_set>
00045 #   endif
00046 #else
00047 #   if (OGRE_COMPILER == OGRE_COMPILER_MSVC) && !defined(STLPORT) && OGRE_COMP_VER >= 1600 // VC++ 10.0
00048 #       include <unordered_map>
00049 #       include <unordered_set>
00050 #   else
00051 #       include <hash_set>
00052 #       include <hash_map>
00053 #   endif
00054 #endif 
00055 
00056 // STL algorithms & functions
00057 #include <algorithm>
00058 #include <functional>
00059 #include <limits>
00060 
00061 // C++ Stream stuff
00062 #include <fstream>
00063 #include <iostream>
00064 #include <iomanip>
00065 #include <sstream>
00066 
00067 #ifdef __BORLANDC__
00068 namespace Ogre
00069 {
00070     using namespace std;
00071 }
00072 #endif
00073 
00074 extern "C" {
00075 
00076 #   include <sys/types.h>
00077 #   include <sys/stat.h>
00078 
00079 }
00080 
00081 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
00082 #  undef min
00083 #  undef max
00084 #  if defined( __MINGW32__ )
00085 #    include <unistd.h>
00086 #  endif
00087 #endif
00088 
00089 #if OGRE_PLATFORM == OGRE_PLATFORM_LINUX
00090 extern "C" {
00091 
00092 #   include <unistd.h>
00093 #   include <dlfcn.h>
00094 
00095 }
00096 #endif
00097 
00098 #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
00099 extern "C" {
00100 #   include <unistd.h>
00101 #   include <sys/param.h>
00102 #   include <CoreFoundation/CoreFoundation.h>
00103 }
00104 #endif
00105 
00106 #if OGRE_THREAD_SUPPORT
00107 #   undef NOMINMAX
00108 #   define NOMINMAX
00109 #   include <boost/thread/tss.hpp>
00110 #   include <boost/thread/recursive_mutex.hpp>
00111 #   include <boost/thread/condition.hpp>
00112 #   include <boost/thread/thread.hpp>
00113 #endif
00114 
00115 #if defined ( OGRE_GCC_VISIBILITY )
00116 #   pragma GCC visibility pop
00117 #endif
00118 #endif

Copyright © 2008 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Sep 27 22:02:26 2009