Fix detection of C++11 Unicode strings with icl.exe

Even though the compiler supports it, the MSVC headers might do
something wrong and make compilation fail later due to attempting to
overload unsigned short with char16_t.

The _CHAR16_T definition comes from <cstddef>, so include that instead
of <stddef.h> in C++ mode.

Change-Id: Ifaeb1c92bde2db4ed4129507462391904afd6510
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This commit is contained in:
Thiago Macieira 2014-12-18 14:52:04 -08:00
parent 045fc1db75
commit 99357e32a0
2 changed files with 9 additions and 3 deletions

View File

@ -499,7 +499,7 @@
// at least since 13.1, but I can't test further back
# define Q_COMPILER_BINARY_LITERALS
# endif
# if __cplusplus >= 201103L
# if __cplusplus >= 201103L || defined(__INTEL_CXX11_MODE__)
# if __INTEL_COMPILER >= 1200
# define Q_COMPILER_AUTO_TYPE
# define Q_COMPILER_CLASS_ENUM
@ -517,7 +517,9 @@
# define Q_COMPILER_AUTO_FUNCTION
# define Q_COMPILER_NULLPTR
# define Q_COMPILER_TEMPLATE_ALIAS
# define Q_COMPILER_UNICODE_STRINGS
# ifndef _CHAR16T // MSVC headers
# define Q_COMPILER_UNICODE_STRINGS
# endif
# define Q_COMPILER_VARIADIC_TEMPLATES
# endif
# if __INTEL_COMPILER >= 1300

View File

@ -35,7 +35,11 @@
#ifndef QGLOBAL_H
#define QGLOBAL_H
#include <stddef.h>
#ifdef __cplusplus
# include <cstddef>
#else
# include <stddef.h>
#endif
#define QT_VERSION_STR "5.5.0"
/*