Здравствуйте, nen777w, Вы писали:
N>Баг или фитча?
Фича, конечно, если у тебя только голый указатель на функцию, то де ты собираешься хранить захваченные переменные?

Для хранения замыкания объект какой-то, однако нужен...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, nen777w, Вы писали:
N>Баг или фитча?
Как ты указатель на лямбду (напоминаю — это структура, для которой ещё есть оператор, сигнатура которого отличается от сигнатуры лямбды на неявный первый член) собираешься конвертить в указатель на функцию?
Пиши так:
template <typename Foonktar>
void foo(Foonktar&& pfn)
{
}
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Получаю ошибку компиляции на MSVC 2015 вот на таком коде:
void foo(bool(*pfn)(unsigned char))
{
}
void doo()
{
int n;
foo([n](unsigned char) -> bool { return true; }); <<--void foo(bool (__cdecl *)(unsigned char))': cannot convert argument 1 from 'doo::<lambda_60869cb642d5ef53784474e34a10f953>
foo([](unsigned char) -> bool { return true; }); <<--если ничего не захватывать то все ок
}
Баг или фитча?