Разгледайте следния код:
int main() {
auto l = [](auto){};
void(*p)(int) = l;
}
Работи добре както с GCC, така и с clang.
Нека разгледаме следната леко модифицирана версия:
int main() {
auto l = [](auto...){};
void(*p)(int) = l;
}
В този случай clang все още го приема, докато GCC го отхвърля.
Има ли някаква причина, поради която този код трябва да бъде отхвърлен или това е грешка на компилатора?
Ще отворя тема, но бих искал да знам дали има предложение, което да е реализирано от единия, а не от другия.