Когда я пытаюсь скомпилировать это:
#include <functional>
void f(std::function<void()> f)
{
}
void g()
{
f([](auto&&...){});
}
на gcc 7.3, я получаю следующую ошибку:
[x86-64 gcc 7.3 # 1] error: невозможно преобразовать '
<lambda closure object>g()::<lambda(auto:1&&,...)>{}
' from 'g()::<lambda(auto:1&&,...)>
'to'std::function<void()>
'
Может кто-нибудь объяснить, почему это недействительно c++? Или я должен представить отчет об ошибке? (MSVC 14 принимает и компилирует его к тому, что я ожидаю.)