compilation error on intel 18
In brief: code does not compiler with intel 18 or later.
Exact error:
bfps/cpp/particles/particles_field_computer.hpp(80): error: expression must have a constant value
constexpr int nb_components_in_field = nbcomp(field);
^
bfps/cpp/particles/particles_field_computer.hpp(80): note: the value of parameter "field" (declared at line 76) cannot be used as a constant
constexpr int nb_components_in_field = nbcomp(field);
^
detected during:
instantiation of "void particles_field_computer<partsize_t, real_number, interpolator_class, interp_neighbours>::apply_computation<field_class,size_particle_positions,size_particle_rhs>(const field_class &, const real_number *, real_number *, partsize_t) const [with partsize_t=long long, real_number=double, interpolator_class=particles_generic_interp<double, 1, 0>, interp_neighbours=1, field_class=field<float, FFTW, THREE>, size_particle_positions=3, size_particle_rhs=3]" at line 387
of "bfps/cpp/particles/particles_distr_mpi.hpp"
First reported by LRZ support, reproduced on cobra with intel compiler. Configuration files to reproduce are attached.
Steps to reproduce:
- clone repository, change directory
- switch to develop branch
- execute
python setup.py compile_library
- extremely long error message will be given at
test_interpolation.cpp
, originating inparticles_field_computer.hpp
, as detailed above.