https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89605
--- Comment #1 from xavier at cremaschi dot fr ---
FYI it also compiles if there is no class but just a free function :
#include <string>
#include <functional>
#include <iostream>
using namespace std;
using ConverterFunction = function<double(double)>;
void _foo(
const ConverterFunction& converter = [](double value) -> double
{ return value; },
const ConverterFunction& converterBack = [](double value) ->
double { return value; }
);
void _foo(
const ConverterFunction& converter,
const ConverterFunction& converterBack)
{
cout << "foo " << converter(42) << endl;
}
int main() {
_foo();
return 0;
}