Syntax error with Intel 16.0.2 compiler
Created by: jrood-nrel
In the master and develop branch, I am getting a syntax error in the Kokkos core with Intel 16.0.2. I could very well be missing something, but I have done this build fine using GCC 5.2.0.
Compiler version:
/…/spack/opt/spack/linux-centos6-x86_64/intel-16.0.2/openmpi-1.10.3-vk7db5rllwjhr6oomo5qlwhpic2gymod/bin/mpicxx --version
icpc (ICC) 16.0.2 20160204
Copyright (C) 1985-2016 Intel Corporation. All rights reserved.
Make output:
...
[ 1%] Building CXX object packages/kokkos/core/src/CMakeFiles/kokkoscore.dir/impl/Kokkos_Core.cpp.o
cd /.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/spack-build/packages/kokkos/core/src && /.../spack/opt/spack/linux-centos6-x86_64/intel-16.0.2/openmpi-1.10.3-vk7db5rllwjhr6oomo5qlwhpic2gymod/bin/mpicxx -I/.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/spack-build -I/.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/spack-build/packages/kokkos/core/src -I/.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/packages/kokkos/core/src -std=c++11 -O3 -DNDEBUG -o CMakeFiles/kokkoscore.dir/impl/Kokkos_Core.cpp.o -c /.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/packages/kokkos/core/src/impl/Kokkos_Core.cpp
In file included from /.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/packages/kokkos/core/src/Kokkos_Core_fwd.hpp(52),
from /.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/packages/kokkos/core/src/Kokkos_Core.hpp(50),
from /.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/packages/kokkos/core/src/impl/Kokkos_Core.cpp(44):
/.../spack/var/spack/stage/trilinos-master-eucqvm457anae3rn2q6lcl67hl7ehrnr/Trilinos/packages/kokkos/core/src/impl/Kokkos_Utilities.hpp(60): error: expected a ";"
T&& forward( typename std::remove_reference<T>::type& arg ) noexcept
...
Kokkos_Utilities.hpp(60):
...
// same as std::forward
// needed to allow perfect forwarding on the device
template <typename T>
KOKKOS_INLINE_FUNCTION
constexpr
T&& forward( typename std::remove_reference<T>::type& arg ) noexcept
{ return static_cast<T&&>(arg); }
...