On 11/18/2015 02:32 PM, Levi Morrison wrote:
> After some other tweaks I am able to get Intel C++ compiler versions
> 12.1.4 13.0.1, 14.0.0, 14.0.2, 15.0.0, 15.0.2, 15.0.3 to work!
> Both tests found by `ctest -R CompileFeatures -VV` pass.
Great. However, the concern I raised earlier about detecting
C++11 features in C++14 mode has not been addressed. For example:
set(Intel14_CXX11 "__ICC >= 1400 && __INTEL_CXX11_MODE__")
In C++14 mode this check fails so all the conditional features are
detected to not exist. Tests/CompileFeatures/CMakeFiles/CMakeOutput.log
shows:
Detecting CXX [-std=c++1y] compiler features compiled with the following
output:
...
Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers
...
Detecting CXX [-std=c++11] compiler features compiled with the following
output:
...
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
The "0" and "1" are an internal detection code encoding for whether
the feature exists according to the feature test specified. We see
that the C++14 mode does not think the feature exists. This is not
the case for GNU or other compilers.
I'm not sure why this doesn't cause problems in the test, but the
conditions need to be fixed to avoid this problem. __INTEL_CXX11_MODE__
only tells us that we are in *exactly* C++11 mode and so is not
reliable for detecting C++11 features in C++14 mode.
-Brad
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers