X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fcompiler.h;h=52cf339533d5703bfe563917f8995145eb079ee9;hb=bb383998bb77002a6d94e83e253de01e116f9268;hp=fbd0d3407aa8bffb415550c4d9bb2bc13335eae1;hpb=8c0b36fe9e862fbc1c2be6a7389a388e71ff9b47;p=simgear.git diff --git a/simgear/compiler.h b/simgear/compiler.h index fbd0d340..52cf3395 100644 --- a/simgear/compiler.h +++ b/simgear/compiler.h @@ -141,18 +141,19 @@ # define STL_STDEXCEPT # define STL_STRING # define STL_STRSTREAM - # else # error Time to upgrade. GNU compilers < 2.7 not supported # endif -# define SG_COMPILER "GNU C++ version " SG_STRINGIZE(__GNUC__) "." SG_STRINGIZE(__GNUC_MINOR__) +# define SG_COMPILER_STR "GNU C++ version " SG_STRINGIZE(__GNUC__) "." SG_STRINGIZE(__GNUC_MINOR__) #endif // __GNUC__ #if defined( __MINGW32__ ) # define bcopy(from, to, n) memcpy(to, from, n) # define FG_MEM_COPY(to,from,n) memcpy(to, from, n) +# define isnan _isnan +# define snprintf _snprintf #endif /* KAI C++ */ @@ -174,7 +175,7 @@ # define STL_STRING # define STL_STRSTREAM -# define SG_COMPILER "Kai C++ version " SG_STRINGIZE(__KCC_VERSION) +# define SG_COMPILER_STR "Kai C++ version " SG_STRINGIZE(__KCC_VERSION) #endif // __KCC @@ -208,7 +209,7 @@ // -dw- currently used glut has no game mode stuff # define GLUT_WRONG_VERSION -# define SG_COMPILER "Metrowerks CodeWarrior C++ version " SG_STRINGIZE(__MWERKS__) +# define SG_COMPILER_STR "Metrowerks CodeWarrior C++ version " SG_STRINGIZE(__MWERKS__) #endif // __MWERKS__ @@ -219,7 +220,7 @@ # define bcopy(from, to, n) memcpy(to, from, n) # define FG_MEM_COPY(to,from,n) memcpy(to, from, n) -# if _MSC_VER == 1200 // msvc++ 6.0 +# if _MSC_VER >= 1200 // msvc++ 6.0 or greater # define SG_NAMESPACES # define SG_HAVE_STD # define SG_HAVE_STD_INCLUDES @@ -235,18 +236,8 @@ # define STL_STRING # define STL_STRSTREAM -# define SG_NO_INCLASS_MEMBER_INITIALIZATION - -// disable min/max macros if defined: -// # ifdef min -// # undef min -// # endif -// # ifdef max -// # undef max -// # endif -// # ifndef NOMINMAX -// # define NOMINMAX -// # endif +# define isnan _isnan +# define snprintf _snprintf # pragma warning(disable: 4786) // identifier was truncated to '255' characters # pragma warning(disable: 4244) // conversion from double to float @@ -256,7 +247,7 @@ # error What version of MSVC++ is this? # endif -# define SG_COMPILER "Microsoft Visual C++ version " SG_STRINGIZE(_MSC_VER) +# define SG_COMPILER_STR "Microsoft Visual C++ version " SG_STRINGIZE(_MSC_VER) #endif // _MSC_VER @@ -290,7 +281,7 @@ # define SG_NAMESPACES // # define SG_HAVE_STD -# define SG_COMPILER "Borland C++ version " SG_STRINGIZE(__BORLANDC__) +# define SG_COMPILER_STR "Borland C++ version " SG_STRINGIZE(__BORLANDC__) #endif // __BORLANDC__ @@ -302,37 +293,40 @@ # define SG_HAVE_NATIVE_SGI_COMPILERS # define SG_EXPLICIT_FUNCTION_TMPL_ARGS +# define SG_CLASS_PARTIAL_SPECIALIZATION # define SG_NEED_AUTO_PTR # define SG_MEMBER_TEMPLATES # define SG_NAMESPACES # define SG_HAVE_STD -# define SG_CLASS_PARTIAL_SPECIALIZATION +# 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_IOMANIP +# define STL_IOSTREAM +# define STL_ITERATOR +# define STL_FSTREAM # define STL_STDEXCEPT +#if (_COMPILER_VERSION < 740) +# define STL_STRING +#else # define STL_STRING -# define STL_STRSTREAM - -// # define __STL_FUNCTION_TMPL_PARTIAL_ORDER -// typedef void PFNGLPOINTPARAMETERFEXTPROC - -#define glPointParameterfEXT glPointParameterfSGIS -#define glPointParameterfvEXT glPointParameterfvSGIS +#endif +# define STL_STRSTREAM #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 +#if (_COMPILER_VERSION >= 740) +# pragma set woff 3624 +#endif #endif -# define SG_COMPILER "SGI Irix compiler version " SG_STRINGIZE(_COMPILER_VERSION) +# define SG_COMPILER_STR "SGI MipsPro compiler version " SG_STRINGIZE(_COMPILER_VERSION) #endif // Native SGI compilers @@ -349,14 +343,14 @@ extern void *memmove(void *, const void *, size_t); # endif // __cplusplus -# define SG_COMPILER "Sun compiler version " SG_STRINGIZE(__SUNPRO_CC) +# define SG_COMPILER_STR "Sun compiler version " SG_STRINGIZE(__SUNPRO_CC) #endif // sun // // Intel C++ Compiler // -#if defined(__ICC) +#if defined(__ICC) || defined (__ECC) # define SG_NAMESPACES # define SG_HAVE_STD # define SG_HAVE_STREAMBUF @@ -373,7 +367,7 @@ # define STL_STRING # define STL_STRSTREAM -# define SG_COMPILER "Intel C++ version " SG_STRINGIZE(__ICC) +# define SG_COMPILER_STR "Intel C++ version " SG_STRINGIZE(__ICC) #endif // __ICC @@ -457,17 +451,4 @@ inline const_mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)() const) #endif // SG_INCOMPLETE_FUNCTIONAL -/** - * SG_STATIC_CONSTANT workaround. - * On compilers which don't allow in-class initialization of static integral - * constant members, we must use enums as a workaround if we want the constants - * to be available at compile-time. This macro gives us a convenient way to - * declare such constants. - */ -#ifdef SG_NO_INCLASS_MEMBER_INITIALIZATION -# define SG_STATIC_CONST(type,assignment) enum { assignment } -#else -# define SG_STATIC_CONST(type,assignment) static const type assignment -#endif - #endif // _SG_COMPILER_H