草庐IT

unique_token

全部标签

c++ - C++ : "expected primary-expression before ‘>’ token"中的两个模板

这个问题在这里已经有了答案:WhereandwhydoIhavetoputthe"template"and"typename"keywords?(8个答案)关闭7年前。最小工作示例:#includestructPrinter{templatestaticvoidprint(Telem){std::coutstructMain{templatevoidprint(Telem){//Inthiscase,thecompilercouldguessTfromthecontext//Butinmycase,assumethatIneedtospecifyT.printer_t::print(e

c++ - std::unique_ptr 和指向指针的指针

我想结合使用std::unique_ptr和FreeImage的FITAG。普通C中的代码将是:...loadimage;FITAG*tag=NULL;FreeImage_GetMetadata(FIMD_EXIF_EXIF,bitmap,"Property",&tag);...dosomestuffwithtag;FreeImage_DeleteTag(tag);...deleteimage;我对unique_ptr的尝试:std::unique_ptrtag(NULL,&FreeImage_DeleteTag);FreeImage_GetMetadata(FIMD_EXIF_EXI

c++ - 当shared_ptr,当unique_ptr

这个问题在这里已经有了答案:Differencesbetweenunique_ptrandshared_ptr[duplicate](4个答案)关闭7年前。什么时候应该使用shared_ptr什么时候使用unique_ptr?例如在这个类中而不是node*应该是shared_ptr或unique_ptr。它取决于什么?classnode{private:node*parent;vectorchildren;/**txny*x-numerdrzewa*y-numerwezla*/stringid;typeNodetype;//0-term,1-funcpublic:node(node*p

c++ - 将 std::unique_ptr 重置为指向数组的指针有什么问题?

我看到如下代码片段:std::unique_ptrmCache;mCache.reset(newuint8_t[size]);有人告诉我这段代码有一些问题。谁能给我一些细节? 最佳答案 给定std::unique_ptrmCache;,当mCache被摧毁了它的deleter将使用delete销毁被管理的指针(如果有的话),即为单个对象释放内存。但是在mCache.reset(newuint8_t[size]);之后什么mCachemanages是指向数组的指针,这意味着它应该使用delete[]反而;使用delete为数组释放内存

c++ - C++ 代码错误 "expected constructor, destructor, or type conversion before ‘(’ token ”和 "no matching function for call to ..."

真正尝试解决错误,仔细检查所有内容。请帮忙。c++新手,请多关照。头文件(.h)#ifndefGUARD_Optimized_quick_sort_h#defineGUARD_Optimized_quick_sort_h#include#include#includeusingnamespacestd;templateclassoptimized_quick_sort{public:optimized_quick_sort(vectorarray){this->array=array;}optimized_quick_sort(listarray){vectortemp(array.b

C++ 模板 - 错误 : expected initializer before '<' token

我正在尝试学习模板,我希望我的类对能够容纳两个任何类型的对象。我现在只想为obj1提供一个访问器函数。但是当我尝试编译时出现以下错误:error:expectedinitializerbefore'::getObj1()我的代码是:#include#include#includeusingnamespacestd;templateclasspair{public:pair(constT1&t1,constT2&t2):obj1(t1),obj2(t2){};T1getObj1();private:T1obj1;T2obj2;};templateT1pair::getObj1(){ret

c++ - 高效优雅地返回放置的 unique_ptr

我发现(thankstoaStackOverflowcomment)我的代码中存在安全漏洞:std::vector>items;templateItem&create(TS&&...mArgs){autoitem(newItem(std::forward(mArgs)...);items.emplace_back(item);//Possibleexceptionandmemoryleakreturn*item;}基本上,如果emplace_back抛出,使用原始new分配Item可能会泄漏内存。解决方案永远不会使用原始new,而是在方法主体中使用std::unique_ptr。std

c++ - 为什么 push_back 在包含 unique_ptr 的结构上成功,除非该结构具有自定义析构函数?

当且仅当我删除Foo的自定义析构函数时,以下代码才能编译。structFoo{std::unique_ptrbar;~Foo(void){}//ThisLine};std::vectorfoos;foos.push_back(Foo());以下是我认为我对这种情况的理解:失败是因为unique_ptrs无法复制,std::vector::push_back(thing)调用thing's复制构造函数。如果我写Foo显式移动bar的自定义复制构造函数,那么一切都会好起来的。但是,禁用ThisLine将导致代码编译。我认为即使没有ThisLine也应该编译失败,因为我仍在尝试push_ba

C++智能指针之unique_ptr

C++智能指针之unique_ptr前言一、unique_ptr1.1unique_ptr类的初始化1.2unique_ptr禁止拷贝和赋值1.3release、reset函数1.4向unique_ptr传递删除器1.5unique_ptr与动态数组的使用总结前言  在C++中,动态内存的申请和释放是通过运算符:new和delete进行管理的。其中new负责申请内存,delete负责释放内存。  动态内存的使用很容易出现问题,这主要在于你需要保证在正确的时间释放内存,这是比较困难的,如果你忘记释放内存,就会造成内存泄露;有时在还有指针引用内存的情况下我们就释放了它,在这种情况下就会产生引用非法

023-安全开发-PHP应用&后台模&Session&Cookie&Token&身份验证&唯一性

023-安全开发-PHP应用&后台模&Session&Cookie&Token&身份验证&唯一性#知识点:1、PHP后台身份验证模块实现2、Cookie&Session技术&差异3、Token数据包唯一性应用场景项目1:用cookie做后台身份验证项目2:用session做后台身份验证项目3:用token做用户登录判断演示案例:➢后台模块-身份验证-Cookie技术➢后台模块-身份验证-Seesion技术➢后台及其他-数据唯一性-Token技术#身份验证-Cookie使用生成cookie的原理图过程:见图1、客户端向服务器发送HTTP请求。2、服务器检查请求头中是否包含cookie信息。3、如