【问题标题】:any can please explain me this boost create_thread line?有谁能解释一下这个 boost create_thread 行吗?
【发布时间】:2021-03-15 21:43:46
【问题描述】:

我在我的 repo 上实现了一个 github 提交,但我看到一行,但我不明白它的含义,这里是一行:

    threadGroup.create_thread(boost::bind(&BeeKeeper, boost::cref(chainparams)));

我了解 threadGroup,我知道它的用途和用途,我有一个名为 BeeKeeper() 的函数,所以我猜它正在调用该函数,但我没有得到 boost::cref,我没有一个名为chainparams 我只有一个名为 chainparams.h 的文件,这只是一个标签,用于创建具有该名称的线程还是它的用途?

谢谢。

【问题讨论】:

    标签: c++ boost createthread


    【解决方案1】:

    标准::绑定。 boost::bind 等所有按值绑定参数。要通过引用,您需要用std::reference_wrapper 包装它们。

    std::refstd::cref(或 boost 的等价物)是返回这些包装器的函数。

    If the stored argument arg is of type

    所以你有一个名为chainparams 的变量,你通过引用传递给线程函数。

    【讨论】:

    • 根据您的回答,我在代码中搜索,是的,我找到了创建chainparams = Params() 的行。但是如果我没有一个包含变量的类,而我只有一个.h?那我该怎么办?
    • 我在我的代码中找到了类似这样的名称:boost::thread(void(Shutdown)(void), NULL);
    • 如果你要问这样的问题,你将不得不分享更多的代码。有链接吗?如果编译器满意,显然你确实拥有这些东西。如果不是,那可能是代码确实被破坏了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多