Это другой случай, когда пробелы имеют значение в С++ или это ошибка компилятора? Является ли синтаксически правильным следующий код?
#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 С++ Composer не может скомпилировать его: "Недопустимая комбинация спецификаторов типов". Но добавьте одно одиночное прошивку в подписи, и оно просто компилируется:
template <int n, EnableIf<n == 1> =0>
void func()
{}