草庐IT

LOCAL_SHARED_LIBRARIES

全部标签

c++ - std::shared_ptr:带有自定义删除器的 typedef

这个问题在这里已经有了答案:Typedefashared_ptrtypewithastaticcustomdeleter,similartounique_ptr(2个答案)关闭7年前。我正在使用SDL2开发C++应用程序,并希望使用shared_ptr来保存指针内容。所以我做例如这个:typedefstd::shared_ptrSDLWindowPtr;而且我需要在整个过程中使用自定义删除器。是否可以将其包含在typedef中?如果是,如何?删除函数称为SDL_DestroyWindow。如果没有,如何让shared_ptr使用SDL_DestroyWindow作为自定义删除函数?提前

C++ 构造函数 : Initialize local variable before initializer list

如何在构造函数中(在堆栈上)存储初始化列表所需的临时状态?例如,实现这个构造函数……//configabstraction.h#includeclassConfigAbstraction{public:ConfigAbstraction(std::istream&input);private:intm_x;intm_y;intm_z;};...使用这样的有状态助手类?//mysillyparserdontworry.h#include//jsoncppclassMySillyParserDontWorry{public:MySillyParserDontWorry(std::istre

c++ - 为什么存在 shared_ptr 的原子重载

为什么有shared_ptr的原子重载,如here所述而不是为处理shared_ptr的std::atomic专门化。似乎与其余C++标准库采用的面向对象模式不一致。在使用shared_ptr实现readcopyupdateidiom时,为了确保我做对了我们需要通过这些函数对共享指针进行所有访问(读取和写入)吗? 最佳答案 因为:std::atomicmaybeinstantiatedwithanyTriviallyCopyabletypeT.来源:http://en.cppreference.com/w/cpp/atomic/at

MySQL报错:Starting MySQL ERROR! Couldn‘t find MySQL server (/usr/local/mysql/bin/mysqld_safe)

1.要对MySQL数据库清除原来已有的数据,重新初始化数据库。Linux系统:CentOS7.6,数据库:MySQL5.6.40。先将mysql进程强行停止掉。pkillmysqld2. 对数据库进行清理:[root@mv172~]#rm-rf/application/mysql/data/*[root@mv172~]#\rm-rf/data/mysql/*  3. 配置文件安装在/application/mysql-5.6.40/my.cnf[mysqld]basedir=/application/mysqldatadir=/application/mysql/datasocket=/tmp

c++ - 在包含 shared_ptr 的 map 上使用 find_if 会增加引用计数

我正在创建一个程序,它有一个包含shared_ptr的映射。当我尝试使用std::find_if在其中查找元素时,shared_ptr的引用计数会增加。示例:#include#include#include#includeintmain(void){std::map>map;map[1]=std::make_shared(3);map[2]=std::make_shared(5);map[4]=std::make_shared(-2);autoit=std::find_if(map.begin(),map.end(),[](conststd::pair>&elem){std::cout

c++ - 在 GCC 中使用 shared_ptr 的可移植方式

GCC4.1使用header和GCC4.3使用header,我需要一种可移植的方式来使用shared_ptr使用GCC4.3.2和GCC4.2.1,有没有办法在不检查GCC版本宏或使用外部库(如Boost)的情况下做到这一点? 最佳答案 仍将与gcc4.3一起工作。如果您想同时支持这两个版本,只需使用tr1姓名。 关于c++-在GCC中使用shared_ptr的可移植方式,我们在StackOverflow上找到一个类似的问题: https://stackove

c++ - Visual Studio : How to specify different runtime libraries for the linker?(/MTd、MDd 等)

我正在链接到VS2008中的几个库。如果我对链接器的了解是正确的,MTd用于静态链接而MDd用于动态链接(到DLL)。我的目标是静态链接一些库和动态链接其他库。项目选项似乎只有一个设置适用于链接器输入中的所有库。我该怎么做? 最佳答案 在您设置项目后,您的项目将获得一个合理的C运行时库默认值,具体取决于您如何回答新建项目向导的提示。您可以按如下方式检查和更改(如果需要):在解决方案资源管理器中右键单击相关项目,选择属性查看配置属性、C/C++、代码生成、运行时库。您可以根据需要链接其他库,您只需在“链接器”、“输入”、“附加依赖项”

c++ - 警告 : Unreferenced local variable

当我为类A提供构造函数时,我没有得到未引用的局部变量,为什么?空构造函数如何消除警告?classA{public:A(){}};intmain(){Aa;} 最佳答案 这只是一种理论,但由于构造函数可能包含可能导致副作用的代码,因此有人可能会决定构造一个未使用的对象来运行该代码。如果您没有构造函数并且从不引用您构造的对象,那么可以安全地确定该对象没有任何用途。 关于c++-警告:Unreferencedlocalvariable,我们在StackOverflow上找到一个类似的问题:

c++ - 为什么 shared_ptr<void> 而不是 shared_ptr<HANDLE>

基于http://en.highscore.de/cpp/boost/smartpointers.html#smartpointers_shared_pointer#include#includeintmain(){boost::shared_ptrh(OpenProcess(PROCESS_SET_INFORMATION,FALSE,GetCurrentProcessId()),CloseHandle);SetPriorityClass(h.get(),HIGH_PRIORITY_CLASS);}问题:为什么h定义为boost::shared_ptr而不是boost::shared_

c++ - std::find 跨一组 shared_ptr

我确定我在这里做了一些愚蠢的事情,但我看不到它。为什么不能编译以下内容?#include#include#include#include//Aclasstoplaywith.Encapsulatesaname.classStringClass{public:StringClass(std::stringconst&name):MyName(name){}std::stringconst&Name()const{returnMyName;}private:std::stringMyName;};//Thesetofinstancesof"StringClass".std::vector>