Лямбды, которые ничего не захватывают, по сути являются свободными функциями , и, следовательно, они могут быть преобразованы в обычные указатели функций.
Лямбды, которые do перехватывают, по сути являются полными классами, и их нельзя просто преобразовать в указатель свободной функции. (Захватывающая лямбда - это, по сути, тот же класс функторов предикатов, который вы написали бы в C ++ до того, как у нас были лямбды.)
Любая версия лямбды может быть преобразована в std::function<void()>
, что и должно быть отображенным типом вашей карты.