Improve ICC compatibility with older MSVC versions (up to 2010)
Like on OS X and Linux, ICC uses the native compiler's standard library headers, so the C++11 features that depend on headers need special attention. * <initializer_list> is missing with MSVC 2012. It is present on 2010 for some reason and it appears to work * ICC disables Unicode string support prior to MSVC 2015, probably because MSVC Standard Library headers have a typedef for char16_t std::nullptr and std::move should have come with MSVC 2010, but I'm not keeping compatibility with MSVC 2008. It's been deprecated since ICC 14.0 (Composer XE 2013 SP1, released in 2013) and support was removed in 15.0 (Composer XE 2015, released in 2014). ICC hasn't supported MSVC 2005 since ICC 13.0 (Composer XE 2013). Task-number: QTBUG-47119 Change-Id: Ib306f8f647014b399b87ffff13f139174aeeafff Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This commit is contained in:
parent
3aa5ef2ea9
commit
cf3a639f9d
@ -564,6 +564,16 @@
|
||||
# endif
|
||||
# define Q_COMPILER_UDL
|
||||
# endif
|
||||
# ifdef _MSC_VER
|
||||
# if _MSC_VER == 1700
|
||||
// <initializer_list> is missing with MSVC 2012 (it's present in 2010, 2013 and up)
|
||||
# undef Q_COMPILER_INITIALIZER_LISTS
|
||||
# endif
|
||||
# if _MSC_VER < 1900
|
||||
// ICC disables unicode string support when compatibility mode with MSVC 2013 or lower is active
|
||||
# undef Q_COMPILER_UNICODE_STRINGS
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user