Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我认为这个问题的答案是否定的,但我只是想确定一下。
如果我std::function在函数中有 a 作为参数,那么传入 a 是否有任何问题,boost::bind反之亦然?
std::function
boost::bind
编辑:
我发现当你包含 boost\bind.h 时,boost::bind 使用的占位符会直接导入到命名空间中,并且它们与 std::bind 不兼容。对于 std::bind,您必须显式引用占位符,例如:std::placeholders::_1,或执行其他一些 typedef 或使用魔法使它们同时可用。
std::不。 (and boost::)的全部目的function是它们可以接受任何可以使用正确签名调用的函数对象——包括 lambda、仿函数和任何类型的绑定的结果。他们不关心你的函数对象来自哪里或它是什么类型。
std::
boost::
function
您甚至可以将它们相互绑定,尽管我不确定您为什么要这样做。