c++ - 如何发送通过绑定到函数/方法创建的功能对象?
问题描述
我为我的随机化需求创建了一个功能对象。
我只是不知道如何将它发送到没有模板的函数/方法。有了它们很容易,只是
template <typename T>
void FooTemplate (T rand)
{
int b = rand(); // OK
}
void foo (... ?)
{
int a = rand(); // how to send generator to function?
}
int main(int argc, char* argv[])
{
auto rand = std::bind(std::uniform_int_distribution<uint32_t>{20, 30}, std::default_random_engine{ std::random_device()() });
return 0;
}
解决方案
void foo(std::function<int()> rand) {...}
std::function<int()>
将包装任何可调用对象,包括由std::bind
推荐阅读
- excel - VBA自定义函数在子程序中工作但不在工作表中
- python - 用于类不平衡的 catboost 分类器?
- javascript - 我无法覆盖 React Bootstrap 组件
- java - Java - 读取和搜索 CSV 文件并显示结果
- javascript - Javascript拖放功能问题
- tsql - 捕获动态 T-SQL 的结果
- javascript - 如何根据我的数组填充 3 个下拉框和 1 个输入框?HTML Javascript
- php - 如何在javascript中将数据导入数据库和phpMyAdmin
- excel - VBA删除重复值并保留最后一个
- c# - 如何使用 LINQ to Objects 通过更改参数值对同一集合进行多个查询