Le code ne fonctionne que sur gcc
template <auto = []{}>
consteval auto f() { return false; }
template <typename ...Args>
consteval auto f(Args &&...) { return true; }
template <typename T>
void func1() {
static_assert(f() == false); // fails
}
void func2() {
static_assert(f() == false);
}
Pourquoi le premier overload de f()
n’est jamais considere dans un contexte avec template (fonctions/structs/variables/etc templated) ?
+0
-0