将提升shared_ptr转换为无效*,反之亦然
converting boost shared_ptr to void* and vice versa
我可以将boost shared_ptr
转换为void*
并返回boost::shared_ptr
吗?我需要这个,因为我需要将共享指针和回调函数传递给用 C 实现的计时器函数。在回调中,我需要将void*
指针转换回boost:shared_ptr
。这样做给了我错误。
我用示例程序尝试了相同的方法。
#include <iostream>
#include <boost/shared_ptr.hpp>
using namespace std;
class A
{
public:
void f1() { cout<<"function fn"; }
inx aa;
private:
};
void f2 (void *arg) {
boost::shared_ptr<A> b = ( boost::shared_ptr<A> *)(arg); //How to do this
}
int main ()
{
boost::shared_ptr<A> a (new A());
//void * ptr = (void *) &a;
f2( (&a));
return 0;
}
这可以用boost::shared_ptr
来完成吗?
还有一个星号:
boost::shared_ptr<A> b = *(boost::shared_ptr<A>*)(arg);
boost::shared_ptr<A> *b = ( boost::shared_ptr<A> *)(arg);
相关文章:
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 无法访问嵌套类.类的使用无效
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 如何解决错误:SCIP C++中的 SCIP 阶段无效 <10>
- 在没有参数列表的情况下使用模板名称"Event"无效,模板问题
- FFMPEG配置文件级别id大小无效
- 错误:从"int"到枚举c++的转换无效
- 如何修复此错误:className::className的无效使用
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- C++-模板嵌套类的引用初始化无效
- 在C++中,将int值赋给enum,反之亦然
- 错误:无效的预处理指令 #i 的意思是 #if?
- 多维数组 C++ 中数组下标的类型"int[int]"无效
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- 从 'int' 到 'int*' CPP 的转换无效
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 由于无效的 ValidateRgn() 子窗口不会收到WM_PAINT消息
- C++ PTHREADS - 无效转换无效*(*)()到无效*(*)(无效*)
- 将提升shared_ptr转换为无效*,反之亦然