请求从非标量类型转换为非标量类型(功能)
conversion from to non-scalar type requested ( functional )
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 );
}
我想做一个函数向量,"blur"是其中一个函数,我不知道这段代码有什么问题。
Error : "error: conversion from 'void (*)(std::queue<std::function<bool()> >, std::function<unsigned int()>)'
to non-scalar type 'std::function<void()>' requested"
正在请求的这个转换是什么,我如何修复它?
请求的转换是什么?
错误很明显:blur
有两个参数,所以不能转换为不带参数的函数。(至少,错误消息暗示它接受两个参数;你发布的声明暗示它是可变的。我假设错误来自您的实际代码,而...
只是为了使问题更难)。
我如何修复它?
如果不知道要用这些函数做什么,就很难说。也许你可以改变blur
,使它不需要参数;或者您可以将函数类型更改为与blur
兼容的类型;或者您可以将参数绑定到blur
:
funcs.push_back(std::bind(blur, something, something_else));
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 带内存和隔离功能的SQLite
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 类模板的成员功能的定义在单独的TU中完全专业化
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在C++中获得"静态纯虚拟"功能?
- 两个文件使用彼此的功能-如何解决
- 我应该实现右值推送功能吗?我应该使用std::move吗
- QML按钮点击功能执行顺序
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 为什么 std::optional::operator=(U&&) 要求你是非标量类型?
- 有没有可能有一个只有ADL才能找到的非好友功能
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 文件系统:复制功能的速度秘诀是什么
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 如何在Directwrite中获得给定字体的可用OpenType功能
- 对可变参数使用声明.如何选择正确的功能
- 请求从非标量类型转换为非标量类型(功能)