Czy jest to inny przypadek, w którym spacja ma znaczenie w C++, czy jest to błąd kompilatora? Czy poniższy kod jest poprawny pod względem składniowym?Kolejny przypadek, w którym spacja ma znaczenie (być może?)
#include <type_traits>
template <bool cond>
using EnableIf = typename std::enable_if<cond, int>::type;
template <int n, EnableIf<n == 1>=0>
void func()
{}
Nie można skompilować programu Intel C++ Composer, mówiąc: "niepoprawna kombinacja specyfikatorów typów". Ale dodaj pojedyncze spacje do podpisu i kompilacja jest w porządku:
template <int n, EnableIf<n == 1> =0>
void func()
{}
Cóż, to nie powinno być ' = 0)>' –
irrelephant