📄 qglobal.h
字号:
predefined macro is specified by a configuration flag. _BOOL is the default. __BOOL_DEFINED Defined in Microsoft C++ mode when bool is a keyword. */# if !defined(_BOOL) && !defined(__BOOL_DEFINED)# define Q_NO_BOOL_TYPE# endif/* The Portland Group compiler is based on EDG and does define __EDG__ */# if defined(__COMO__)# define Q_CC_COMEAU# define Q_C_CALLBACKS/* The `using' keyword was introduced to avoid KAI C++ warnings but it's now causing KAI C++ errors instead. The standard is unclear about the use of this keyword, and in practice every compiler is using its own set of rules. Forget it. */# elif defined(__KCC)# define Q_CC_KAI# if !defined(_EXCEPTIONS)# define Q_NO_EXCEPTIONS# endif# define Q_NO_USING_KEYWORD/* Using the `using' keyword avoids Intel C++ warnings */# elif defined(__INTEL_COMPILER)# define Q_CC_INTEL# if !defined(__EXCEPTIONS)# define Q_NO_EXCEPTIONS# endif/* The Portland Group compiler is based on EDG and does define __EDG__ */# elif defined(__PGI)# define Q_CC_PGI# if !defined(__EXCEPTIONS)# define Q_NO_EXCEPTIONS# endif/* Never tested! */# elif defined(__ghs)# define Q_CC_GHS/* The UnixWare 7 UDK compiler is based on EDG and does define __EDG__ */# elif defined(__USLC__) && defined(__SCO_VERSION__)# define Q_CC_USLC/* The latest UDK 7.1.1b does not need this, but previous versions do */# if !defined(__SCO_VERSION__) || (__SCO_VERSION__ < 302200010)# define Q_INLINE_TEMPLATES inline# endif# define Q_NO_USING_KEYWORD /* ### check "using" status *//* Never tested! */# elif defined(CENTERLINE_CLPP) || defined(OBJECTCENTER)# define Q_CC_OC# define Q_NO_USING_KEYWORD/* CDS++ defines __EDG__ although this is not documented in the Reliant documentation. It also follows conventions like _BOOL and this documented */# elif defined(sinix)# define Q_CC_CDS# define Q_NO_USING_KEYWORD# if defined(__cplusplus) && (__cplusplus < 2) /* Cfront C++ mode */# define Q_NO_EXCEPTIONS# endif/* The MIPSpro compiler in o32 mode is based on EDG but disables features such as template specialization nevertheless */# elif defined(__sgi)# define Q_CC_MIPS# define Q_STRICT_INLINING_RULES# if defined(_MIPS_SIM) && (_MIPS_SIM == _ABIO32) /* o32 ABI */# define Q_TYPENAME# define Q_BROKEN_TEMPLATE_SPECIALIZATION# define Q_NO_EXPLICIT_KEYWORD# define Q_INLINE_TEMPLATES inline# elif defined(_COMPILER_VERSION) && (_COMPILER_VERSION < 730) /* 7.2 */# define Q_TYPENAME# define Q_BROKEN_TEMPLATE_SPECIALIZATION# endif# define Q_NO_USING_KEYWORD /* ### check "using" status */# endif/* The older UnixWare 2.X compiler? */#elif defined(__USLC__)# define Q_CC_USLC# define Q_TYPENAME# define Q_NO_BOOL_TYPE# define Q_NO_EXPLICIT_KEYWORD# define Q_NO_USING_KEYWORD# define Q_INLINE_TEMPLATES inline/* Never tested! */#elif defined(__HIGHC__)# define Q_CC_HIGHC#elif defined(__SUNPRO_CC)# define Q_CC_SUN/* 5.0 compiler or better 'bool' is enabled by default but can be disabled using -features=nobool in which case _BOOL is not defined this is the default in 4.2 compatibility mode triggered by -compat=4 */# if __SUNPRO_CC >= 0x500# if !defined(_BOOL)# define Q_NO_BOOL_TYPE# endif# if defined(__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT <= 4)# define Q_NO_USING_KEYWORD# endif# define Q_C_CALLBACKS/* 4.2 compiler or older */# else# define Q_NO_BOOL_TYPE# define Q_NO_EXPLICIT_KEYWORD# define Q_NO_USING_KEYWORD# endif/* CDS++ does not seem to define __EDG__ or __EDG according to Reliant documentation but nevertheless uses EDG conventions like _BOOL */#elif defined(sinix)# define Q_CC_EDG# define Q_CC_CDS# if !defined(_BOOL)# define Q_NO_BOOL_TYPE# endif# define Q_BROKEN_TEMPLATE_SPECIALIZATION#elif defined(Q_OS_HPUX)/* __HP_aCC was not defined in first aCC releases */# if defined(__HP_aCC) || __cplusplus >= 199707L# define Q_CC_HPACC# else# define Q_CC_HP# define Q_NO_BOOL_TYPE# define Q_FULL_TEMPLATE_INSTANTIATION# define Q_BROKEN_TEMPLATE_SPECIALIZATION# define Q_NO_EXPLICIT_KEYWORD# endif# define Q_NO_USING_KEYWORD /* ### check "using" status */#else# error "Qt has not been tested with this compiler - talk to qt-bugs@trolltech.com"#endif#ifndef Q_PACKED# define Q_PACKED#endif/* The window system, must be one of: (Q_WS_x) MACX - Mac OS X MAC9 - Mac OS 9 QWS - Qt/Embedded WIN32 - Windows X11 - X Window System PM - unsupported WIN16 - unsupported*/#if defined(Q_OS_MAC9)# define Q_WS_MAC9#elif defined(Q_OS_MSDOS)# define Q_WS_WIN16# error "Qt requires Win32 and does not work with Windows 3.x"#elif defined(_WIN32_X11_)# define Q_WS_X11#elif defined(Q_OS_WIN32)# define Q_WS_WIN32# if defined(Q_OS_WIN64)# define Q_WS_WIN64# endif#elif defined(Q_OS_OS2)# define Q_WS_PM# error "Qt does not work with OS/2 Presentation Manager or Workplace Shell"#elif defined(Q_OS_UNIX)# if defined(QWS)# define Q_WS_QWS# define QT_NO_QWS_IM# elif defined(Q_OS_MACX)# define Q_WS_MACX# else# define Q_WS_X11# endif#endif#if defined(Q_OS_MAC) && !defined(QMAC_PASCAL)# define QMAC_PASCAL#endif#if defined(Q_WS_WIN16) || defined(Q_WS_WIN32)# define Q_WS_WIN#endif#if (defined(Q_WS_MAC9) || defined(Q_WS_MACX)) && !defined(Q_WS_QWS) && !defined(Q_WS_X11)# define Q_WS_MAC#endif/* Some classes do not permit copies to be made of an object. These classes contains a private copy constructor and operator= to disable copying (the compiler gives an error message). Undefine Q_DISABLE_COPY to turn off this checking.*/#define Q_DISABLE_COPY#if defined(__cplusplus)//// Useful type definitions for Qt//#if defined(Q_NO_BOOL_TYPE)#if defined(Q_CC_HP)// bool is an unsupported reserved keyword in later versions#define bool int#elsetypedef int bool;#endif#endiftypedef unsigned char uchar;typedef unsigned short ushort;typedef unsigned uint;typedef unsigned long ulong;typedef char *pchar;typedef uchar *puchar;typedef const char *pcchar;//// Constant bool values//#ifndef TRUEconst bool FALSE = 0;const bool TRUE = !0;#endif#if defined(__WATCOMC__)# if defined(Q_OS_QNX4)const bool false = FALSE;const bool true = TRUE;# endif#endif//// Proper for-scoping// ### turn on in 4.0#if 0 && defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET)# define for if(0){}else for#endif//// Use the "explicit" keyword on platforms that support it.//#if !defined(Q_NO_EXPLICIT_KEYWORD)# define Q_EXPLICIT explicit#else# define Q_EXPLICIT#endif//// Workaround for static const members on MSVC++.//#if defined(Q_CC_MSVC)# define QT_STATIC_CONST static# define QT_STATIC_CONST_IMPL#else# define QT_STATIC_CONST static const# define QT_STATIC_CONST_IMPL const#endif//// Utility macros and inline functions//#define QMAX(a, b) ((b) < (a) ? (a) : (b))#define QMIN(a, b) ((a) < (b) ? (a) : (b))#define QABS(a) ((a) >= 0 ? (a) : -(a))inline int qRound( double d ){ return d >= 0.0 ? int(d + 0.5) : int( d - ((int)d-1) + 0.5 ) + ((int)d-1);}//// Size-dependent types (architechture-dependent byte order)//#if !defined(QT_CLEAN_NAMESPACE)// source compatibility with Qt 1.xtypedef signed char INT8; // 8 bit signedtypedef unsigned char UINT8; // 8 bit unsignedtypedef short INT16; // 16 bit signedtypedef unsigned short UINT16; // 16 bit unsignedtypedef int INT32; // 32 bit signedtypedef unsigned int UINT32; // 32 bit unsigned#endiftypedef signed char Q_INT8; // 8 bit signedtypedef unsigned char Q_UINT8; // 8 bit unsignedtypedef short Q_INT16; // 16 bit signedtypedef unsigned short Q_UINT16; // 16 bit unsignedtypedef int Q_INT32; // 32 bit signedtypedef unsigned int Q_UINT32; // 32 bit unsigned#if defined(Q_OS_WIN64)typedef __int64 Q_LONG; // word up to 64 bit signedtypedef unsigned __int64 Q_ULONG; // word up to 64 bit unsigned#elsetypedef long Q_LONG; // word up to 64 bit signedtypedef unsigned long Q_ULONG; // word up to 64 bit unsigned#endif#if defined(Q_OS_WIN) && !defined(Q_CC_GNU)# define Q_INT64_C(c) c ## i64 // signed 64 bit constant# define Q_UINT64_C(c) c ## ui64 // unsigned 64 bit constanttypedef __int64 Q_INT64; // 64 bit signedtypedef unsigned __int64 Q_UINT64; // 64 bit unsigned#else# define Q_INT64_C(c) c ## LL // signed 64 bit constant# define Q_UINT64_C(c) c ## ULL // unsigned 64 bit constanttypedef long long Q_INT64; // 64 bit signedtypedef unsigned long long Q_UINT64; // 64 bit unsigned#endiftypedef Q_INT64 Q_LLONG; // signed long longtypedef Q_UINT64 Q_ULLONG; // unsigned long long#if defined(Q_OS_MACX) && !defined(QT_LARGEFILE_SUPPORT)# define QT_LARGEFILE_SUPPORT 64#endif#if defined(QT_LARGEFILE_SUPPORT) typedef Q_ULLONG QtOffset;#else typedef Q_ULONG QtOffset;#endif//// Data stream functions is provided by many classes (defined in qdatastream.h)//class QDataStream;//// Feature subsetting//// Note that disabling some features will produce a libqt that is not// compatible with other libqt builds. Such modifications are only// supported on Qt/Embedded where reducing the library size is important// and where the application-suite is often a fixed set.//#if !defined(QT_MOC)#if defined(QCONFIG_LOCAL)#include "qconfig-local.h"#elif defined(QCONFIG_MINIMAL)#include "qconfig-minimal.h"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -