有谁能解释一下这个 boost create_thread 行吗?
Posted
技术标签:
【中文标题】有谁能解释一下这个 boost create_thread 行吗?【英文标题】:any can please explain me this boost create_thread line? 【发布时间】:2021-03-15 21:43:46 【问题描述】:我在我的 repo 上实现了一个 github 提交,但我看到一行,但我不明白它的含义,这里是一行:
threadGroup.create_thread(boost::bind(&BeeKeeper, boost::cref(chainparams)));
我了解 threadGroup,我知道它的用途和用途,我有一个名为 BeeKeeper() 的函数,所以我猜它正在调用该函数,但我没有得到 boost::cref,我没有一个名为chainparams 我只有一个名为 chainparams.h 的文件,这只是一个标签,用于创建具有该名称的线程还是它的用途?
谢谢。
【问题讨论】:
【参考方案1】:标准::绑定。 boost::bind 等所有按值绑定参数。要通过引用,您需要用std::reference_wrapper
包装它们。
std::ref
和 std::cref
(或 boost 的等价物)是返回这些包装器的函数。
见If the stored argument arg is of type
所以你有一个名为chainparams
的变量,你通过引用传递给线程函数。
【讨论】:
根据您的回答,我在代码中搜索,是的,我找到了创建chainparams = Params() 的行。但是如果我没有一个包含变量的类,而我只有一个.h?那我该怎么办? 我在我的代码中找到了类似这样的名称:boost::thread(void(Shutdown)(void), NULL); 如果你要问这样的问题,你将不得不分享更多的代码。有链接吗?如果编译器满意,显然你确实拥有这些东西。如果不是,那可能是代码确实被破坏了。以上是关于有谁能解释一下这个 boost create_thread 行吗?的主要内容,如果未能解决你的问题,请参考以下文章
有谁能给我【NOIP2015】《跳石头》的暴力代码和二分代码以及其中算法思想的详细解释啊?