icpc version number is actually 18.104.22.168
I haven’t tested other parallel studio’s but I had no problems building 3.16.2 with it. The issue appears to be this line that appeared in bootstrap in 3.17.0
#if (__cplusplus >= 201703L || defined(__INTEL_COMPILER) && defined(__cpp_if_constexpr))
error message during bootstrap is this:
error: no instance of function template "get_ptr" matches the argument list argument types are: (std::unique_ptr<int, std::default_delete<int>>) get_ptr(u); ^ : note: this candidate was rejected because at least one template argument could not be deduced typename T::pointer get_ptr(T& item) ^ compilation aborted for cmake.cxx (code 2)
changing the line to read as follows
#if (!defined(__INTEL_COMPILER) && __cplusplus >= 201703L || defined(__INTEL_COMPILER) && defined(__cpp_deduction_guides) && __cpp_deduction_guides > 201703L)
is working for me. Intel claims that 19.1 supports P0091R3 but in light of the error message I went with a “greater than” instead of a >=. This only matters if CXXFLAGS includes -std=c++17. Compiling with the default standard or even up through c++14 would work fine with >= because _cpp_deduction_guides isn’t even defined on those releases.