mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-20 06:06:13 +00:00
Fixed: Compilation with STLport under Linux
This commit is contained in:
parent
fc759b313c
commit
fc2a8872ec
3 changed files with 49 additions and 41 deletions
|
@ -206,7 +206,7 @@ inline double isValidDouble (double v)
|
||||||
#ifdef NL_OS_WINDOWS
|
#ifdef NL_OS_WINDOWS
|
||||||
return _finite(v) && !_isnan(v);
|
return _finite(v) && !_isnan(v);
|
||||||
#else
|
#else
|
||||||
return !std::isnan(v) && !std::isinf(v);
|
return !isnan(v) && !isinf(v);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -187,6 +187,10 @@ inline std::string toString(const uint32 &val) { return toString("%u", val); }
|
||||||
inline std::string toString(const sint32 &val) { return toString("%d", val); }
|
inline std::string toString(const sint32 &val) { return toString("%d", val); }
|
||||||
inline std::string toString(const uint64 &val) { return toString("%"NL_I64"u", val); }
|
inline std::string toString(const uint64 &val) { return toString("%"NL_I64"u", val); }
|
||||||
inline std::string toString(const sint64 &val) { return toString("%"NL_I64"d", val); }
|
inline std::string toString(const sint64 &val) { return toString("%"NL_I64"d", val); }
|
||||||
|
|
||||||
|
#ifdef NL_COMP_GCC
|
||||||
|
# if GCC_VERSION == 40102
|
||||||
|
|
||||||
// error fix for size_t? gcc 4.1.2 requested this type instead of size_t ...
|
// error fix for size_t? gcc 4.1.2 requested this type instead of size_t ...
|
||||||
inline std::string toString(const long unsigned int &val)
|
inline std::string toString(const long unsigned int &val)
|
||||||
{
|
{
|
||||||
|
@ -194,6 +198,10 @@ inline std::string toString(const long unsigned int &val)
|
||||||
return toString((uint64)val);
|
return toString((uint64)val);
|
||||||
return toString((uint32)val);
|
return toString((uint32)val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (SIZEOF_SIZE_T) == 8
|
#if (SIZEOF_SIZE_T) == 8
|
||||||
inline std::string toString(const size_t &val) { return toString("%"NL_I64"u", val); }
|
inline std::string toString(const size_t &val) { return toString("%"NL_I64"u", val); }
|
||||||
//#else
|
//#else
|
||||||
|
|
|
@ -40,8 +40,10 @@
|
||||||
# define FINAL_VERSION 0
|
# define FINAL_VERSION 0
|
||||||
#endif // FINAL_VERSION
|
#endif // FINAL_VERSION
|
||||||
|
|
||||||
// Operating systems definition
|
// This way we know about _HAS_TR1 and _STLPORT_VERSION
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
// Operating systems definition
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# define NL_OS_WINDOWS
|
# define NL_OS_WINDOWS
|
||||||
# define NL_LITTLE_ENDIAN
|
# define NL_LITTLE_ENDIAN
|
||||||
|
@ -51,7 +53,6 @@
|
||||||
# endif
|
# endif
|
||||||
# if _MSC_VER >= 1500
|
# if _MSC_VER >= 1500
|
||||||
# define NL_COMP_VC9
|
# define NL_COMP_VC9
|
||||||
# include <string> // This way we know about _HAS_TR1 :O
|
|
||||||
# ifndef _STLPORT_VERSION // STLport doesn't depend on MS STL features
|
# ifndef _STLPORT_VERSION // STLport doesn't depend on MS STL features
|
||||||
# if defined(_HAS_TR1) && (_HAS_TR1 + 0) // VC9 TR1 feature pack
|
# if defined(_HAS_TR1) && (_HAS_TR1 + 0) // VC9 TR1 feature pack
|
||||||
# define NL_ISO_STDTR1_AVAILABLE
|
# define NL_ISO_STDTR1_AVAILABLE
|
||||||
|
@ -88,7 +89,7 @@
|
||||||
# ifdef _WIN64
|
# ifdef _WIN64
|
||||||
# define NL_OS_WIN64
|
# define NL_OS_WIN64
|
||||||
# ifndef NL_NO_ASM
|
# ifndef NL_NO_ASM
|
||||||
// Windows 64bits platform SDK compilers doesn't support inline assemblers
|
// Windows 64bits platform SDK compilers doesn't support inline assembler
|
||||||
# define NL_NO_ASM
|
# define NL_NO_ASM
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
@ -131,9 +132,12 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// gcc 4.1+ provides std::tr1
|
// gcc 4.1+ provides std::tr1
|
||||||
#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 1))
|
#ifdef NL_COMP_GCC
|
||||||
# define NL_ISO_STDTR1_AVAILABLE
|
# define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||||
# define NL_ISO_STDTR1_HEADER(header) <tr1/header>
|
# if GCC_VERSION > 40100
|
||||||
|
# define NL_ISO_STDTR1_AVAILABLE
|
||||||
|
# define NL_ISO_STDTR1_HEADER(header) <tr1/header>
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Remove stupid Visual C++ warnings
|
// Remove stupid Visual C++ warnings
|
||||||
|
@ -261,22 +265,6 @@ typedef unsigned int uint; // at least 32bits (depend of processor)
|
||||||
|
|
||||||
#define NL_I64 "I64"
|
#define NL_I64 "I64"
|
||||||
|
|
||||||
#ifndef NL_ISO_STDTR1_AVAILABLE
|
|
||||||
# include <hash_map>
|
|
||||||
# include <hash_set>
|
|
||||||
# ifdef _STLP_HASH_MAP
|
|
||||||
# define CHashMap ::std::hash_map
|
|
||||||
# define CHashSet ::std::hash_set
|
|
||||||
# define CHashMultiMap ::std::hash_multimap
|
|
||||||
# elif defined(NL_COMP_VC7) || defined(NL_COMP_VC71) || defined(NL_COMP_VC8) || defined(NL_COMP_VC9) // VC7 through 9
|
|
||||||
# define CHashMap stdext::hash_map
|
|
||||||
# define CHashSet stdext::hash_set
|
|
||||||
# define CHashMultiMap stdext::hash_multimap
|
|
||||||
# else
|
|
||||||
# pragma error("You need to update your compiler")
|
|
||||||
# endif
|
|
||||||
#endif // NL_ISO_STDTR1_AVAILABLE
|
|
||||||
|
|
||||||
#elif defined (NL_OS_UNIX)
|
#elif defined (NL_OS_UNIX)
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -284,20 +272,41 @@ typedef unsigned int uint; // at least 32bits (depend of processor)
|
||||||
#include <climits>
|
#include <climits>
|
||||||
|
|
||||||
typedef int8_t sint8;
|
typedef int8_t sint8;
|
||||||
typedef u_int8_t uint8;
|
typedef uint8_t uint8;
|
||||||
typedef int16_t sint16;
|
typedef int16_t sint16;
|
||||||
typedef u_int16_t uint16;
|
typedef uint16_t uint16;
|
||||||
typedef int32_t sint32;
|
typedef int32_t sint32;
|
||||||
typedef u_int32_t uint32;
|
typedef uint32_t uint32;
|
||||||
typedef long long int sint64;
|
typedef int64_t sint64;
|
||||||
typedef unsigned long long int uint64;
|
typedef uint64_t uint64;
|
||||||
|
|
||||||
typedef int sint; // at least 32bits (depend of processor)
|
typedef int sint; // at least 32bits (depend of processor)
|
||||||
typedef unsigned int uint; // at least 32bits (depend of processor)
|
typedef unsigned int uint; // at least 32bits (depend of processor)
|
||||||
|
|
||||||
#define NL_I64 "ll"
|
#define NL_I64 "ll"
|
||||||
|
|
||||||
#if defined(NL_COMP_GCC) && !defined(NL_ISO_STDTR1_AVAILABLE) // GCC4
|
#endif // NL_OS_UNIX
|
||||||
|
|
||||||
|
// CHashMap, CHashSet and CHashMultiMap definitions
|
||||||
|
#if defined(_STLPORT_VERSION) // STLport detected
|
||||||
|
# include <hash_map>
|
||||||
|
# include <hash_set>
|
||||||
|
# ifdef _STLP_HASH_MAP
|
||||||
|
# define CHashMap ::std::hash_map
|
||||||
|
# define CHashSet ::std::hash_set
|
||||||
|
# define CHashMultiMap ::std::hash_multimap
|
||||||
|
# endif // _STLP_HASH_MAP
|
||||||
|
#elif defined(NL_ISO_STDTR1_AVAILABLE) // use std::tr1 for CHash* classes, if available (gcc 4.1+ and VC9 with TR1 feature pack)
|
||||||
|
# include NL_ISO_STDTR1_HEADER(unordered_map)
|
||||||
|
# include NL_ISO_STDTR1_HEADER(unordered_set)
|
||||||
|
# define CHashMap std::tr1::unordered_map
|
||||||
|
# define CHashSet std::tr1::unordered_set
|
||||||
|
# define CHashMultiMap std::tr1::unordered_multimap
|
||||||
|
#elif defined(NL_COMP_VC7) || defined(NL_COMP_VC71) || defined(NL_COMP_VC8) || defined(NL_COMP_VC9) // VC7 through 9
|
||||||
|
# define CHashMap stdext::hash_map
|
||||||
|
# define CHashSet stdext::hash_set
|
||||||
|
# define CHashMultiMap stdext::hash_multimap
|
||||||
|
#elif defined(NL_COMP_GCC) // GCC4
|
||||||
# include <ext/hash_map>
|
# include <ext/hash_map>
|
||||||
# include <ext/hash_set>
|
# include <ext/hash_set>
|
||||||
# define CHashMap ::__gnu_cxx::hash_map
|
# define CHashMap ::__gnu_cxx::hash_map
|
||||||
|
@ -324,18 +333,9 @@ template<> struct hash<uint64>
|
||||||
|
|
||||||
} // END NAMESPACE __GNU_CXX
|
} // END NAMESPACE __GNU_CXX
|
||||||
|
|
||||||
#endif // NL_COMP_GCC && !NL_ISO_STDTR1_AVAILABLE
|
#else
|
||||||
|
# pragma error("You need to update your compiler")
|
||||||
#endif // NL_OS_UNIX
|
#endif // _STLPORT_VERSION
|
||||||
|
|
||||||
// use std::tr1 for CHash* classes, if available (gcc 4.1+ and VC9 with TR1 feature pack)
|
|
||||||
#ifdef NL_ISO_STDTR1_AVAILABLE
|
|
||||||
# include NL_ISO_STDTR1_HEADER(unordered_map)
|
|
||||||
# include NL_ISO_STDTR1_HEADER(unordered_set)
|
|
||||||
# define CHashMap std::tr1::unordered_map
|
|
||||||
# define CHashSet std::tr1::unordered_set
|
|
||||||
# define CHashMultiMap std::tr1::unordered_multimap
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \typedef ucchar
|
* \typedef ucchar
|
||||||
|
|
Loading…
Reference in a new issue