Is this another case, where whitespace matters in C++, or is it a compiler bug? Is the following code syntactically correct?
#include <type_traits>
template <bool cond>
using EnableIf = typename std::enable_if<cond, int>::type;
template <int n, EnableIf<n == 1>=0>
void func()
{}
Intel C++ Composer fails to compile it saying: "invalid combination of type specifiers". But add single whitespace in the signature and it compiles just fine:
template <int n, EnableIf<n == 1> =0>
void func()
{}
<n == (1>=0)>
– Microclimate