następujący kod jest skompilowany z powodzeniem z brzękiem, ale nie gcc:gcc nie akceptuje Dodatek w domyślnym szablonie argumentu
struct fn
{
template <typename ... Args>
static constexpr bool call (Args ...) { return true; }
};
template <typename ... T>
static constexpr bool f = false;
template <typename ... Ts, bool F = fn::call(f<Ts> ...)>
void hoge() {}
int main() {}
gcc 5.1.0 (-Wall -Wextra -std = C++ 14 - pedantyczny) mówi:
clang 3.6.0 i 3.5.0 nie daje błędów.
Czy ja i clang naruszamy zasady C++ lub czy jest to błąd gcc?