可以混合使用std ::'s和boost ::'s :: bind和:: function会导致问题吗?

cwm*_*wm9 5 c++ boost std c++11

我认为答案是否定的,但我只想确定.

如果我std::function在函数中有一个参数,那么传入a是否有任何问题,boost::bind反之亦然?

编辑:

我发现当你包含boost\bind.h时,boost :: bind使用的占位符会直接导入到命名空间中,并且它们与std :: bind不兼容.对于std :: bind,您必须引用显式占位符,如下所示:std :: placeholders :: _ 1,或者执行其他一些typedef或使用magic来使它们同时可用.

Pup*_*ppy 10

不.std::(和boost::)的全部目的function是它们可以接受任何可以使用正确签名调用的函数对象 - 包括lambdas,functor和任何类型绑定的结果.它们并不关心函数对象的来源或类型.

你甚至可以把它们绑在一起,虽然我不确定你为什么要这样做.