-
0 votesanswersviews
使用boost :: shared_ptr编译std :: map时出错
我想在vs2005中编译我的代码 . 我正在使用std :: map和boost :: shared_ptr(v1.47.0)我的代码看起来像这样 struct B { int a; } typedef boost::shared_ptr<B> K; std::map<const std::string, K > mymap; //some code std:... -
0 votesanswersviews
从两侧打开手柄
我有一个声音驱动程序/播放器的界面,具有 SoundHandle Load(bfs::path) 和 void Play(SoundHandle) 等功能 . 实现作为插件/共享库提供 这个想法是:通过具有最小接口的句柄返回加载的声音 . 如果此句柄被销毁,则声音将被卸载 . 卸载插件时,所有句柄都将失效 . 我的实现使用带有自定义删除器的 shared_ptr ,如下所示: /// Base c... -
1 votesanswersviews
将(共享指针的)向量的值分配给共享指针会导致分段错误c
在我的代码中,我有一个名为 foosBoxes 的 vector <vector <vector <vector <std::tr1::shared_ptr<foo> > > > > . 嵌套向量具有模拟物理盒位置的作用 . 我也有一个导致分段错误的while循环: vector<std::tr1::shared_ptr<f... -
1 votesanswersviews
稍后设置std :: shared_ptr源
我'm just starting out with C++ and trying to get my head around smart pointers. Obviously, the following code will crash (I suppose it'因为赋值创建了shared_ptr的副本?) . 有没有办法通过在 ptrs[3] 上调用某种set方法来更新 foo.Other... -
1 votesanswersviews
什么是C的shared_ptr的Rust等价物?
为什么Rust中不允许使用此语法: fn main() { let a = String::from("ping"); let b = a; println!("{{{}, {}}}", a, b); } 当我尝试编译这段代码时,我得到了: 错误[E0382]:使用移动值:a src / main.rs:5:28|3 |... -
0 votesanswersviews
boost :: bind封装COM接口返回的HANDLE
我有一个使用这样的COM对象的Visual Studio 2008 c项目: ISomeComInterface* foo; HANDLE file = foo->CreateFile(); // file operations... foo->CloseHandle( file ); 我想使用 boost::shared_ptr<> 来封装返回的 HANDLE 对象的生... -
3 votesanswersviews
如何正确关闭使用asio进行事件排队的类的实例
在我的项目中,我广泛使用boost asio来使用io_service.post()和strand.post()/ dispatch()将非均匀事件统一排队到我的应用程序中的模块 . 在main()中,这些模块在shared_ptrs中创建并保存,直到程序退出并被删除: simplified main: { [some initialization] boost::asio::io_se... -
2 votesanswersviews
句柄的引用计数而不是指针
C 11引入了像std :: shared_ptr这样的智能指针 . 该类存储指针和引用计数器 . 当引用计数器达到零时,将调用回调(删除器) . 我的问题是C 11是否有一种简单的方法来使用没有指针的std :: shared_ptr的引用计数器 . 我使用一个c风格的库,它给我一个整数句柄来指定东西 . 我想创建包装句柄的类 . 我想通过使用shared_ptr来避免间接,而我想要一些类型的引... -
0 votesanswersviews
学习c 11智能指针,它不会让我像指针一样使用隐式转换吗?
我有一个ISceneNode接口,并从那个SceneNode基类 . 从SceneNode类派生MeshNode,AnimNode,LightNode,CameraNode等... 现在我有一个actor类,它通过一个方法接收一个shared_ptr并将它存储在一个字段中 . 我希望能够做的是将任何std :: shared_ptr或其他派生类发送到接收shared_ptr的函数中 . 使用裸指针... -
0 votesanswersviews
设计(shared_ptr weak_ptr)与原始指针兼容
序言 在C 11中有 std::shared_ptr std::weak_ptr 组合 . 虽然非常有用,但它有一个令人讨厌的问题:你cannot easily construct shared_ptr from a raw pointer . 由于这个缺陷,这些智能指针通常会变成"viral":人们开始完全避免原始指针和引用,并在代码中使用shared_ptr和weak_... -
11 votesanswersviews
std :: shared_ptr深层复制对象
C11上找不到多少,但仅限于提升 . 考虑以下课程: class State { std::shared_ptr<Graph> _graph; public: State( const State & state ) { // This is assignment, and thus points to same object ... -
2 votesanswersviews
std :: vector :: erase()(多线程)'Assertion `px != 0'失败 .
与shared_ptr Assertion px != 0 failed相似 我正在编写一个游戏服务器,它会生成一个新线程来处理每个用户会话 . 主线程有一个UserSession共享指针的std :: vector . 另一个线程定期从此向量中删除死会话但在执行std :: vector :: erase()时失败 . 我无法找出生活中的错误 . 错误是: Prototype2:/usr/in...