Когда я пытаюсь сделать вариационную лямбду:
#include <cstdarg>
int main() {
[] (int x, ...) { va_list xs; va_start(xs, x); va_end(xs); };
return 0;
}
С GCC это компилируется отлично, но clang отклоняет его:
main.cpp:4:35: error: 'va_start' used in function with fixed args [] (int x, ...) { va_list xs; va_start(xs, x); va_end(xs); }; ^
Какой компилятор здесь правильно? Можно ли сделать вариационную лямбду?
Любопытно, что следующие результаты в ICE с clang, поэтому похоже, что clang не работает с вариациями:
int f(...) {
[] (int x, ...) { va_list xs; va_start(xs, x); va_end(xs); };
return;
}