bool blur( ... ) {}
void Effects::genQueue(std::queue<std::function<bool()> > q, std::function<unsigned()> dice){
std::vector< std::function<bool()> > funcs;
funcs.push_back( blur );
}
我正在尝试创建一个函数向量,&#34;模糊&#34;作为其中一个功能,我无法弄清楚这段代码有什么问题。
Error : "error: conversion from 'void (*)(std::queue<std::function<bool()> >, std::function<unsigned int()>)'
to non-scalar type 'std::function<void()>' requested"
请求的转化是什么以及如何解决?
答案 0 :(得分:0)
请求的转化是什么?
错误很明显:blur
有两个参数,因此无法转换为不带参数的函数。 (至少,错误消息暗示它需要两个参数;你发布的声明暗示它是可变的。我假设错误来自你的真实代码,而...
只是为了让问题更难)
我该如何解决?
不知道你想用这些功能做什么,很难说。也许你可以改变blur
,这样它就不需要参数;或者您可以将函数类型更改为与blur
兼容的内容;或者你可以将参数绑定到blur
:
funcs.push_back(std::bind(blur, something, something_else));