如何解决传递给Boost线程的函数中的歧义

用户11498510

我想使用boost创建一个新线程,函数RenderOut是BlueOut类的成员。

该函数已重载,如何在将其传递给Boost线程时解决此歧义。

void BlueOut::RenderOut( int i);
void BlueOut::RenderOut( std::string str);

BlueOut blueout;
boost::thread* thr = new boost::thread(boost::bind ( &BlueOut::RenderOut , &blueout ));
印第安纳·克尼克

要从重载集中选择成员函数,请将成员函数指针强制转换为所需的类型。因此要选择int版本,请使用以下命令:

static_cast<void (BlueOut::*)(int)>(&BlueOut::RenderOut);

要选择std::string版本,请使用以下命令:

static_cast<void (BlueOut::*)(std::string)>(&BlueOut::RenderOut);

在示例中使用此代码,您将编写以下代码:

// you didn't specify which overload you wanted so I chose `int` because I have no idea
boost::thread* thr = new boost::thread(
  boost::bind(
    static_cast<void (BlueOut::*)(int)>(&BlueOut::RenderOut), 
    &blueout
  )
);

相同的原理也适用于自由函数和静态函数。鉴于以下功能:

void RenderOut(int);
void RenderOut(std::string);

您可以选择以下int版本:

static_cast<void(*)(int)>(&RenderOut);

...并选择std::string与此版本:

static_cast<void(*)(std::string)>(&RenderOut);

您可以在cppreference上阅读有关此内容的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何解决以下代码中的函数重载歧义

来自分类Dev

如何解决将值传递给javascript函数的错误?

来自分类Dev

如何解决将值传递给javascript函数的错误?

来自分类Dev

如何解决我的GADT中的歧义

来自分类Dev

如何解决cucumberjs中的歧义问题?

来自分类Dev

如何解决“ fpclassify”:对重载函数的歧义调用

来自分类Dev

如何解决这种歧义?

来自分类Dev

如何解决这种歧义?

来自分类Dev

如何解决方法引用中的重载歧义?

来自分类Dev

如何解决通用扩展方法中的这种歧义?

来自分类Dev

如何解决Swift中的歧义类型错误?

来自分类Dev

如何解决Qt插槽中功能的歧义

来自分类Dev

引用如何解决多重继承中的歧义?

来自分类Dev

如何解决错误:在我的React-Redux应用程序中,“您必须将组件传递给connect返回的函数。而不是收到{}”?

来自分类Dev

如何解决钻石问题的这种歧义

来自分类Dev

如何使用SFINAE解决重载函数中的歧义

来自分类Dev

如何使用SFINAE解决重载函数中的歧义

来自分类Dev

如何解决线程主线程中的异常?怎么了?

来自分类Dev

当变量传递给函数无关紧要时,如何解决gmock EXPECT_CALL失败

来自分类Dev

传递给r中的函数时如何解析可选输入

来自分类Dev

C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

来自分类Dev

如何解决php中的smarty函数?

来自分类Dev

如何解决“未捕获的TypeError:参数1传递给JpGraphException :: defaultHandler()”在PHP 7.1.3和jpgraph 4.2.6中的问题?

来自分类Dev

如何解决Scala中采用相同输入类型的歧义隐式转换方法?

来自分类Dev

如何使用默认参数将函数传递给std ::线程?

来自分类Dev

如何在Python中将异步函数传递给线程目标?

来自分类Dev

如何将模板函数传递给POSIX线程(pthread)

来自分类Dev

如何将对象列表传递给线程函数

来自分类Dev

如何解决Py.test中的线程阻塞?

Related 相关文章

  1. 1

    如何解决以下代码中的函数重载歧义

  2. 2

    如何解决将值传递给javascript函数的错误?

  3. 3

    如何解决将值传递给javascript函数的错误?

  4. 4

    如何解决我的GADT中的歧义

  5. 5

    如何解决cucumberjs中的歧义问题?

  6. 6

    如何解决“ fpclassify”:对重载函数的歧义调用

  7. 7

    如何解决这种歧义?

  8. 8

    如何解决这种歧义?

  9. 9

    如何解决方法引用中的重载歧义?

  10. 10

    如何解决通用扩展方法中的这种歧义?

  11. 11

    如何解决Swift中的歧义类型错误?

  12. 12

    如何解决Qt插槽中功能的歧义

  13. 13

    引用如何解决多重继承中的歧义?

  14. 14

    如何解决错误:在我的React-Redux应用程序中,“您必须将组件传递给connect返回的函数。而不是收到{}”?

  15. 15

    如何解决钻石问题的这种歧义

  16. 16

    如何使用SFINAE解决重载函数中的歧义

  17. 17

    如何使用SFINAE解决重载函数中的歧义

  18. 18

    如何解决线程主线程中的异常?怎么了?

  19. 19

    当变量传递给函数无关紧要时,如何解决gmock EXPECT_CALL失败

  20. 20

    传递给r中的函数时如何解析可选输入

  21. 21

    C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

  22. 22

    如何解决php中的smarty函数?

  23. 23

    如何解决“未捕获的TypeError:参数1传递给JpGraphException :: defaultHandler()”在PHP 7.1.3和jpgraph 4.2.6中的问题?

  24. 24

    如何解决Scala中采用相同输入类型的歧义隐式转换方法?

  25. 25

    如何使用默认参数将函数传递给std ::线程?

  26. 26

    如何在Python中将异步函数传递给线程目标?

  27. 27

    如何将模板函数传递给POSIX线程(pthread)

  28. 28

    如何将对象列表传递给线程函数

  29. 29

    如何解决Py.test中的线程阻塞?

热门标签

归档