これは、C ++で空白が重要な別のケースですか、それともコンパイラのバグですか?次のコードは構文的に正しいですか?
#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は、「型指定子の無効な組み合わせ」と言ってコンパイルに失敗します。ただし、署名に単一の空白を追加すると、正常にコンパイルされます。
template <int n, EnableIf<n == 1> =0>
void func()
{}