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

Reply via email to