reorganized/improved fixed size int types definitions; in particular use __int64 for wxInt64 if available
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -38,60 +38,17 @@
|
||||
// decide upon which class we will use
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// to avoid compilation problems on 64bit machines with ambiguous method calls
|
||||
// we will need to define this
|
||||
#undef wxLongLongIsLong
|
||||
|
||||
// NB: we #define and not typedef wxLongLong_t because we want to be able to
|
||||
// use 'unsigned wxLongLong_t' as well and because we use "#ifdef
|
||||
// wxLongLong_t" below
|
||||
|
||||
// first check for generic cases which are long on 64bit machine and "long
|
||||
// long", then check for specific compilers
|
||||
#if defined(SIZEOF_LONG) && (SIZEOF_LONG == 8)
|
||||
#define wxLongLong_t long
|
||||
#define wxLongLongSuffix l
|
||||
#define wxLongLongFmtSpec _T("l")
|
||||
#define wxLongLongIsLong
|
||||
#elif (defined(__VISUALC__) && defined(__WIN32__)) || defined( __VMS__ )
|
||||
#define wxLongLong_t __int64
|
||||
#define wxLongLongSuffix i64
|
||||
#define wxLongLongFmtSpec _T("I64")
|
||||
#elif defined(__BORLANDC__) && defined(__WIN32__) && (__BORLANDC__ >= 0x520)
|
||||
#define wxLongLong_t __int64
|
||||
#define wxLongLongSuffix i64
|
||||
#define wxLongLongFmtSpec _T("Ld")
|
||||
#elif (defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG >= 8) || \
|
||||
defined(__MINGW32__) || \
|
||||
defined(__GNUC__) || \
|
||||
defined(__CYGWIN__) || \
|
||||
defined(__WXMICROWIN__) || \
|
||||
(defined(__DJGPP__) && __DJGPP__ >= 2)
|
||||
#define wxLongLong_t long long
|
||||
#define wxLongLongSuffix ll
|
||||
#define wxLongLongFmtSpec _T("ll")
|
||||
#elif defined(__MWERKS__)
|
||||
#if __option(longlong)
|
||||
#define wxLongLong_t long long
|
||||
#define wxLongLongSuffix ll
|
||||
#define wxLongLongFmtSpec _T("ll")
|
||||
#else
|
||||
#error "The 64 bit integer support in CodeWarrior has been disabled."
|
||||
#error "See the documentation on the 'longlong' pragma."
|
||||
#endif
|
||||
#elif defined(__VISAGECPP__) && __IBMCPP__ >= 400
|
||||
#define wxLongLong_t long long
|
||||
#else // no native long long type
|
||||
#ifndef wxLongLong_t
|
||||
// both warning and pragma warning are not portable, but at least an
|
||||
// unknown pragma should never be an error -- except that, actually, some
|
||||
// broken compilers don't like it, so we have to disable it in this case
|
||||
// <sigh>
|
||||
#if !(defined(__WATCOMC__) || defined(__VISAGECPP__))
|
||||
#pragma warning "Your compiler does not appear to support 64 bit "\
|
||||
"integers, using emulation class instead.\n" \
|
||||
"Please report your compiler version to " \
|
||||
"wx-dev@lists.wxwindows.org!"
|
||||
#endif
|
||||
#if !(defined(__WATCOMC__) || defined(__VISAGECPP__))
|
||||
#pragma warning "Your compiler does not appear to support 64 bit "\
|
||||
"integers, using emulation class instead.\n" \
|
||||
"Please report your compiler version to " \
|
||||
"wx-dev@lists.wxwindows.org!"
|
||||
#endif
|
||||
|
||||
#define wxUSE_LONGLONG_WX 1
|
||||
#endif // compiler
|
||||
|
Reference in New Issue
Block a user