X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fcompiler.h;h=1fa75a3fb9e3d124e1274d0f2ced42459cf0ef36;hb=d0d7878e0a4cc7871276db37517faf0c61693740;hp=e77233e7331421dbe88bc7ceffd32cc59f8c4f07;hpb=c16b9ed25b9c8d7229153787aa1492e4ea37b61e;p=simgear.git diff --git a/simgear/compiler.h b/simgear/compiler.h index e77233e7..1fa75a3f 100644 --- a/simgear/compiler.h +++ b/simgear/compiler.h @@ -22,7 +22,9 @@ /** \file compiler.h * A set of defines to encapsulate compiler and platform differences. - * What this file does. + * Please refer to the source code for full documentation on this file. + * + * Here is a summary of what this file does. * * (1) Defines macros for some STL includes which may be affected * by file name length limitations. @@ -78,6 +80,7 @@ # define STL_FUNCTIONAL # define STL_IOMANIP # define STL_IOSTREAM +# define STL_ITERATOR # define STL_FSTREAM # define STL_STDEXCEPT # define STL_STRING @@ -103,17 +106,44 @@ # define STL_FUNCTIONAL # define STL_IOMANIP # define STL_IOSTREAM +# define STL_ITERATOR # define STL_FSTREAM # define STL_STDEXCEPT # define STL_STRING # define STL_STRSTREAM # endif +# elif __GNUC__ == 3 + // g++-3.0.x +# define SG_EXPLICIT_FUNCTION_TMPL_ARGS +# define SG_NEED_AUTO_PTR +# define SG_MEMBER_TEMPLATES +# define SG_NAMESPACES +# define SG_HAVE_STD +# define SG_HAVE_STREAMBUF +# define SG_CLASS_PARTIAL_SPECIALIZATION +# define SG_HAVE_STD_INCLUDES + +# define STL_ALGORITHM +# define STL_FUNCTIONAL +# define STL_IOMANIP +# define STL_IOSTREAM +# define STL_ITERATOR +# define STL_FSTREAM +# define STL_STDEXCEPT +# define STL_STRING +# define STL_STRSTREAM + # else # error Time to upgrade. GNU compilers < 2.7 not supported # endif #endif +#if defined( __MINGW32__ ) +# define bcopy(from, to, n) memcpy(to, from, n) +# define FG_MEM_COPY(to,from,n) memcpy(to, from, n) +#endif + /* KAI C++ */ #if defined(__KCC) @@ -127,6 +157,7 @@ # define STL_FUNCTIONAL # define STL_IOMANIP # define STL_IOSTREAM +# define STL_ITERATOR # define STL_FSTREAM # define STL_STDEXCEPT # define STL_STRING @@ -149,6 +180,7 @@ # define STL_FUNCTIONAL # define STL_IOMANIP # define STL_IOSTREAM +# define STL_ITERATOR # define STL_FSTREAM # define STL_STDEXCEPT # define STL_STRING @@ -180,6 +212,7 @@ # define STL_FUNCTIONAL # define STL_IOMANIP # define STL_IOSTREAM +# define STL_ITERATOR # define STL_FSTREAM # define STL_STDEXCEPT # define STL_STRING @@ -188,27 +221,6 @@ # pragma warning(disable: 4786) // identifier was truncated to '255' characters # pragma warning(disable: 4244) // conversion from double to float # pragma warning(disable: 4305) // - -# elif _MSC_VER == 1100 // msvc++ 5.0 -# define NEEDNAMESPACESTD -# define SG_NAMESPACES -# define SG_HAVE_STD -# define SG_HAVE_STD_INCLUDES -# define SG_HAVE_STREAMBUF - -# define STL_ALGORITHM -# define STL_FUNCTIONAL -# define STL_IOMANIP -# define STL_IOSTREAM -# define STL_FSTREAM -# define STL_STDEXCEPT -# define STL_STRING -# define STL_STRSTREAM - -# pragma warning(disable: 4786) // identifier was truncated to '255' characters -# pragma warning(disable: 4244) // conversion from double to float -# pragma warning(disable: 4305) // - # else # error What version of MSVC++ is this? # endif @@ -237,6 +249,7 @@ # endif // HAVE_SGI_STL_PORT # define STL_IOSTREAM +# define STL_ITERATOR # define STL_FSTREAM # define STL_STRING # define SG_NO_DEFAULT_TEMPLATE_ARGS @@ -264,10 +277,24 @@ # define STL_FUNCTIONAL # define STL_IOMANIP # define STL_IOSTREAM +# define STL_ITERATOR # define STL_FSTREAM # define STL_STDEXCEPT # define STL_STRING -# define STL_STRSTREAM +# define STL_STRSTREAM + +// # define __STL_FUNCTION_TMPL_PARTIAL_ORDER +// typedef void PFNGLPOINTPARAMETERFEXTPROC + +#define glPointParameterfEXT glPointParameterfSGIS +#define glPointParameterfvEXT glPointParameterfvSGIS + +#pragma set woff 1001,1012,1014,1116,1155,1172,1174 +#pragma set woff 1401,1460,1551,1552,1681 + +#ifdef __cplusplus +#pragma set woff 1682,3303 +#endif #endif // Native SGI compilers @@ -285,6 +312,27 @@ # endif // __cplusplus #endif // sun +// +// Intel C++ Compiler +// +#if defined(__ICC) +# define SG_NAMESPACES +# define SG_HAVE_STD +# define SG_HAVE_STREAMBUF +# define SG_HAVE_TRAITS +# define SG_HAVE_STD_INCLUDES + +# define STL_ALGORITHM +# define STL_FUNCTIONAL +# define STL_IOMANIP +# define STL_IOSTREAM +# define STL_ITERATOR +# define STL_FSTREAM +# define STL_STDEXCEPT +# define STL_STRING +# define STL_STRSTREAM +#endif // __ICC + // // No user modifiable definitions beyond here. // @@ -331,6 +379,9 @@ # define SG_USING_NAMESPACE(X) #endif +/** \def SG_USING_STD(x) + * Expands to using std::x if SG_HAVE_STD is defined + */ # ifdef SG_HAVE_STD # define SG_USING_STD(X) using std::X # define STD std