c++ - 尝试将函数作为参数传递时出现 "no suitable constructor exis

我有一个输入类,它有一个应该将函数作为参数的方法。

#include "pixelGameEngine.h"
#include <functional>
class Input
{
public:
    Input() = default;
    Input(const Input&) = delete;
    Input& operator=(const Input&) = delete;

public:
    static void OnDPress(olc::PixelGameEngine* pge, std::function<void()> DoIteration) noexcept
    {
        if (pge->GetKey(olc::D).bPressed)
        {
            DoIteration();
        }
    }
};

我有一个应该调用该函数的三角形处理器类。

#include "pixelGameEngine.h"
#include "input.h"
#include <functional>
class TriangleProcessor
{
    //...
    void DoIteration() noexcept{};
    Input input;
    void Run(olc::PixelGameEngine* pge)
    {
        Input::OnDPress(pge, DoIteration);
    }
}

但是我得到一个错误 "no suitable constructor exists to convert from "void () to "std::function<void ()>"在线Input::OnDPress(pge, DoIteration);DoIteration 下有红色波浪形.

相关文章:

r - 将 100 个数据帧合并为一个数据帧的函数

github-actions - 如何获取用户名,负责在 github 操作中触发工作流

php - 找不到 Heroku 类 'NumberFormatter'

algorithm - K个桶中N个对象的所有可能组合

node.js - 如何使用 cmd 更新 Node.js?

android - 使用导航组件为每个 fragment 自定义工具栏

flutter - 如何将 'Function' 类型的参数分配给 'void Function()

python - 如何在 python 数据框中做季度?

kubernetes - 无法使用 Terraform 为 AKS 集群创建命名空间,报告没有此类主

pandas - 设置 pandas 索引单元格的背景颜色