Рассмотрим следующий код:
int main() {
auto l = [](auto){};
void(*p)(int) = l;
}
Он отлично работает как с GCC, так и с clang.
Рассмотрим следующую слегка измененную версию:
int main() {
auto l = [](auto...){};
void(*p)(int) = l;
}
В этом случае clang по-прежнему принимает его, а GCC отклоняет его.
Есть ли причина, по которой этот код должен быть отклонен, или это ошибка компилятора?
Я собираюсь открыть вопрос, но я хотел бы знать, существует ли какое-либо предложение, которое могло бы быть реализовано одним из них, а не другим.