我有一个输入类,它有一个应该将函数作为参数的方法。
#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
下有红色波浪形.