草庐IT

Make_shared

全部标签

c++ - Qt 智能指针相当于 Boost::shared_ptr ?

我在以前的项目中使用过Boost::shared_ptr,现在我想在Qt中找到一个智能指针,它可以做相同/相似的事情。由于Qt中有许多智能指针类,我想知道该使用哪一个。是QSharedPointer吗? 最佳答案 如果您使用过boost::shared_ptr,请继续使用它。首选boost::shared_ptr而不是任何Qt“扩展”,因为boost::shared_ptr被C++0x标准接受(std::shared_ptr). 关于c++-Qt智能指针相当于Boost::shared_

c++ - 如何将 boost::weak_ptr 转换为 boost::shared_ptr

我有一个shared_ptr和一个weak_ptrtypedefboost::weak_ptrclassnamePtr;typedefboost::shared_ptrxPtr;如何将weak_ptr转换为shared_ptrshared_ptr=weak_ptr;Xptr=classnameptr;????? 最佳答案 已经说过了boost::shared_ptrptr=weak_ptr.lock();如果你不想要异常或者只是使用强制转换构造函数boost::shared_ptrptr(weak_ptr);如果弱指针已经被删除,这

基于 C++ 的 make 系统

是否有不使用DSL而实际使用C++作为构建语言的构建系统? 最佳答案 YoDawg,我听说你喜欢C++,所以我将C++添加到你的构建系统中,所以你必须先编译再编译。 关于基于C++的make系统,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5013827/

c++ - 为什么 std::sort() 比 std::make_heap() 快?

我有13721057我的元素std::vector.我需要对这个vector进行排序并获取前25个元素。我想,因为你可以在O(N)中构建一个堆弹出25个元素(每个元素都是O(logN))一定比在O(NlogN)中对整个vector排序更快.但是,当我对代码计时时:clock_ttStart=clock();sort(mostFrequent.begin(),mostFrequent.end(),greater());printf("Timetaken:%.2fs\n",(double)(clock()-tStart)/CLOCKS_PER_SEC);对比clock_ttStart=cl

c++ - 为什么我们不能将 "="用于 shared_ptr 或 unique_ptr?

这个问题在这里已经有了答案:Whydoesn'tshared_ptrpermitdirectassignment(5个答案)关闭5年前。我发现语法有编译错误。std::shared_ptrp=newint(5);3141E:\temprory(deleteitifulike)\1208.cpp[Error]conversionfrom'int*'tonon-scalartype'std::shared_ptr'requested不过没关系std::shared_ptrp(newint(5));与unique_ptr相同;但不知道为什么要禁止。

c++ - shared_ptr 空指针和赋值

我想像使用实际指针一样使用shared_ptr。我希望能够做类似的事情shared_ptra;a=newint(5);a=0;shared_ptrfoo()return0;但它不是默认实现的。我通过添加更改了boost库的shared_ptr的源代码templatevoidoperator=(inti){reset(i);}templatevoidreset(inti){this_type(i).swap(*this);}templatevoidoperator=(Y*p){reset(p);}shared_ptr(inti):px(0),pn(){}唯一的问题是如果我做a=-1;它会

c++ - 将 std::shared_ptr 转换为 QPointer

我们的应用程序设计得非常糟糕-它同时使用了std::shared_ptr和QObject父子关系来管理我们的一些对象。当QObject::~QObject时,这会导致段错误删除其子对象然后shared_ptr也尝试删除它。我们讨论过这个问题,但目前没有办法轻松解决这个问题,所以在我们解决它之前,我需要使用一些肮脏的技巧。现在我有一个std::shared_ptrgetMyObjectPtr()功能。我需要将结果放入QPointer-QPointers是弱指针,仅指示它们管理的QObject是否已删除。我无法以任何方式更改该功能,否则会破坏整个应用程序。我尝试了一些自定义解除分配器的ha

c++ - 关于在包含许多子目录的项目上使用 make 的反馈

对于我的面向对象编程类(class),我必须做一个期末项目(学术目的)。我想以“正确的方式”(即:makefile、模块化、DRY、易于扩展等)制作项目,以便更好地理解类、makefile和C++。我的想法是拥有一个“树源文件结构目录”,因此在每个子文件夹中我都会得到源文件及其标题、测试文件和单个makefile。因此,如果我想在界面上工作,我会转到子文件夹界面,编辑文件,运行测试,如果一切正常,只需将对象链接到我的根目录中即可。如果我想处理我的数据结构,也是一样,依此类推。一个不错的功能是在每个子文件夹中都包含源代码和目标文件,因此我的根目录中的链接器将搜索已在子文件夹中编译的目标文

c++ - 在调试器中查看 C++ shared_ptr 内容

在xcode中调试C++代码,有没有办法查看std::shared_ptr的内容?如果我查看“监视”窗口,我只能看到__ptr=(element_type*)0xa66945c在即时窗口中写'pomyPointer'也只打印内存地址。我还尝试了“查看“__ptr_”的内存”和“查看“*__ptr_”的内存”,但它只让我看到了原始内存,没有实际可读的文本任何人都可以建议一种方法来查看我有指针的对象吗? 最佳答案 LLDB中的fr命令有一个--ptr-depth参数,在这些情况下可以提供帮助。例如,尝试在直接Pane中键入以下内容:fr

c++ - 非递归 make : include makefile segment in a loop

我有一个非递归的makefile,它定义了可用于构建库等的辅助函数definemake-library#buildlibfrom*.cppincurrentdir...endef每个库/二进制文件都在一个名为module.mk的单独makefile段中定义,该段调用这些辅助函数$(eval$(callmake-library,my_lib))makefile在源代码树中搜索makefile段,并包含它们modules:=$(shellfind.-namemodule.mk|xargsecho)include$(modules)问题:我在makefile的顶部定义了一组默认的CPPFLA