次のコードを検討してください。
int main() {
auto l = [](auto){};
void(*p)(int) = l;
}
GCCとclangの両方で問題なく動作します。
次のわずかに変更されたバージョンを考えてみましょう。
int main() {
auto l = [](auto...){};
void(*p)(int) = l;
}
この場合、clang は引き続きそれを受け入れますが、GCC はそれを拒否します。
このコードを拒否する理由はありますか、それともコンパイラのバグですか?
私は問題を提起するつもりですが、一方ではなく他方では実装できた可能性のある提案が存在するかどうか知りたいです。