我有一个旧的C风格库,使用unsigned long作为用户参数的回调函数,我想将我的shared_ptr传递给回调函数,以便增加引用计数。
void callback( unsigned long arg ) {
std::shared_ptr<my_class> ptr = ??? arg ???
}
void starter_function() {
std::shared_ptr<my_class> ptr = std::make_shared<my_class>();
unsigned long arg = ??? ptr ???
// pass to library so it may be used by callback
}
目前我在shared_ptr上使用get(),然后使用C风格的转换,但是当start_function超出作用域时会出现问题。