OGRE: OgreStdHeaders.h Source File - OGRE Documentation

# 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 || OGRE_PLATFORM == OGRE_PLATFORM_IPHONE
    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 #   if !defined(NOMINMAX) && defined(_MSC_VER)
    00108 #       define NOMINMAX // required to stop windows.h messing up std::min
    00109 #   endif
    00110 #   include "Threading/OgreThreadHeaders.h"
    00111 #endif
    00112
    00113 #if defined ( OGRE_GCC_VISIBILITY )
    00114 #   pragma GCC visibility pop
    00115 #endif
    00116 #endif

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Wed Nov 3 2010 19:24:52