当我使用 boost::bind 将参数绑定到函数时-它们何时转换为函数所需的类型(如果可以进行隐式转换)?
它们是如何存储在 bind_t 对象中的?作为最初传递给 bind 的类型还是作为函数签名所需的类型?
具体来说:
如果我有签名的功能
void SomeFun(SmartPointer<SomeType>)
我使用绑定作为
boost::bind(&SomeFun, somePtr)
somePtr类型在哪里SomeType*,该bind_t对象将包含somePtr存储为简单指针的副本还是将其强制转换为SmartPointer<SomeType>并存储为SmartPointer<SomeType>?
SomeType*从to有一个隐式转换SmartPointer<SomeType>。与在托管对象boost::shared_ptr中SmartPointer使用引用计数器相反,含义SomeType必须从SmartPointed.