]> git.mxchange.org Git - simgear.git/blobdiff - simgear/compiler.h
Update the SoundSample api so we can request that a copy of the sample be
[simgear.git] / simgear / compiler.h
index fbd0d3407aa8bffb415550c4d9bb2bc13335eae1..52cf339533d5703bfe563917f8995145eb079ee9 100644 (file)
 #      define STL_STDEXCEPT  <stdexcept>
 #      define STL_STRING     <string>
 #      define STL_STRSTREAM  <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++ */
 #  define STL_STRING     <string>
 #  define STL_STRSTREAM  <strstream>
 
-#  define SG_COMPILER "Kai C++ version " SG_STRINGIZE(__KCC_VERSION)
+#  define SG_COMPILER_STR "Kai C++ version " SG_STRINGIZE(__KCC_VERSION)
 
 #endif // __KCC
 
 // -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__
 
 #  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
 #    define STL_STRING     <string>
 #    define STL_STRSTREAM  <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
 #    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
 
 #  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__
 
 #  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  <algorithm>
 #  define STL_FUNCTIONAL <functional>
-#  define STL_IOMANIP    <iomanip.h>
-#  define STL_IOSTREAM   <iostream.h>
-#  define STL_ITERATOR   <iterator.h>
-#  define STL_FSTREAM    <fstream.h>
+#  define STL_IOMANIP    <iomanip>
+#  define STL_IOSTREAM   <iostream>
+#  define STL_ITERATOR   <iterator>
+#  define STL_FSTREAM    <fstream>
 #  define STL_STDEXCEPT  <stdexcept>
+#if (_COMPILER_VERSION < 740)
+#  define STL_STRING     <irix_string>
+#else
 #  define STL_STRING     <string>
-#  define STL_STRSTREAM  <strstream.h>
-
-// #  define __STL_FUNCTION_TMPL_PARTIAL_ORDER
-// typedef void PFNGLPOINTPARAMETERFEXTPROC
-
-#define glPointParameterfEXT   glPointParameterfSGIS
-#define glPointParameterfvEXT  glPointParameterfvSGIS
+#endif
+#  define STL_STRSTREAM  <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
 
      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
 #  define STL_STRING     <string>
 #  define STL_STRSTREAM  <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