草庐IT

auto-start-shell

全部标签

c++ - 这是一个很好的 std::auto_ptr<> 用例吗?

请假设我有一个接受指针作为参数的函数。这个函数可以抛出异常,因为它使用std::vector::push_back()管理此指针的生命周期。如果我这样声明:voidmanage(T*ptr);并这样称呼它:manage(newT());如果它抛出异常将指针插入std::vector,我实际上有内存泄漏,不是吗?会像这样声明函数:voidmanage(std::auto_ptrptr);解决我的问题?我希望它首先分配std::auto_ptr在堆栈上(我猜永远不会抛出异常的东西)并让它获得对指针的所有权。安全的。然后,在函数内部,我将原始指针插入std::vector,这也是安全的:如果

c++ - 在 std::auto_ptr 的构造函数中使用 `explicit` 关键字有什么原因吗?

这是用于在VS2008编译器中从标准指针构造std::auto_ptr对象的构造函数。templateclassauto_ptr{public:explicitauto_ptr(_Ty*_Ptr=0)_THROW0():_Myptr(_Ptr){}private:_Ty*_Myptr;};explicit是否有任何特殊原因?上面使用关键字?换句话说,为什么我不能初始化auto_ptr与std::auto_ptrptr=newClassA;? 最佳答案 因为否则您可能会无意中执行以下操作:voidfoo(std::auto_ptrp)

c++ - 在多线程环境中使用 auto_ptr 交换对象而不锁定是安全的吗?

我在堆上分配了一些数据结构,它们很少被修改但需要快速读取访问。一个例子是在堆上分配的结构,许多线程以只读方式非常频繁地访问它。需要定期重写此结构并避免锁定争用我想知道使用auto_ptr是否安全基本上允许已获取引用的线程继续处理直到它们完成writer创建结构的拷贝,重写它并快速与结构的新auto_ptr实例交换指针。我从Java中的CopyOnWriteArrayList得到这个想法,并希望在C++中执行类似的性能。 最佳答案 std::auto_ptr在调用非常量成员(例如reset())时没有任何线程安全保证正如你所建议的。此

c++ - 使用 constexpr auto/char-array 变量观察到的不同行为

跟进这个问题Havingaconstexprstaticstringgivesalinkererror在问题中,这段代码无法编译:#includestructTest{staticconstexprchartext[]="Text";};intmain(){std::cout从评论来看,这段代码是可以编译的:#includestructTest{staticconstexprautotext="Text";};intmain(){std::cout我的问题是,为什么auto版本可以工作,而char版本的数组却不行?能否请您指出标准中允许使用第二个版本而不允许使用第一个版本的声明?我看了

HBase(docker版)简单部署和HBase shell操作实践

文章目录说明HBase部署访问HBaseShell常见命令数据定义语言(DDL)数据操作语言(DML)通用操作访问HBaseWebUI说明本文适合HBase初学者快速搭建HBase环境,练习常见shell使用本文参考资料《大数据技术原理和应用》(林子雨编著第三版)zhoupengbo的大数据练手项目HBase部署安装docker:可以安装1panel快速安装docker,然后再管理面板中配置镜像加速然后在面板中拉取harisekhon/hbase镜像到本地运行容器dockerrun-d-hdocker-hbase\-p2181:2181\-p8080:8080\-p8085:8085\-p90

c++ - (C++14) lambda 数组 : error: 'name' declared as array of 'auto'

我很难解决这个错误。我承认,我是C++的新手,我的困难来自于不理解错误消息。代码如下:autoselectionFuncs[8]={[&](constVector3&min,constVector3&max){returnmax.x_==seamValues.x_||max.y_==seamValues.y_||max.z_==seamValues.z_;},[&](constVector3&min,constVector3&max){returnmin.x_==seamValues.x_;},[&](constVector3&min,constVector3&max){returnm

c++ - Qt + VS2010 : The program can't start because <xyz>. 你的电脑缺少dll

我从以下.pro文件创建了一个visualstudio2010解决方案:TEMPLATE=appCONFIG+=qtyyyzzzdebug_and_releaseTARGET=XYZdepthINCLUDEPATH+=.#HEADERS=SOURCES=main.cppxyzMainWidget.cppyyy{LIBS+=$(YYY_DIR)/release/yyy.libINCLUDEPATH+=$(YYY_DIR)}zzz{LIBS+=$(ZZZ_DIR)/lib/x86/ZZZ.libINCLUDEPATH+=$(ZZZ_DIR)/inc}当然,我已经替换了里面的一些关键词。它引

c++ - 有什么理由不对 C++ 基于范围的 for 循环使用 auto& 吗?

例如循环:std::vectorvec;...for(auto&c:vec){...}将遍历vec并通过引用复制每个元素。是否有理由这样做?for(int&c:vec){...} 最佳答案 这两个代码片段将导致生成相同的代码:使用auto,编译器将确定底层类型是int,并执行完全相同的操作但是,auto的选项更“面向future”:如果在以后的某个时候您决定将int替换为,比如说,uint8_t为了节省空间,您无需遍历代码来查找对可能需要更改的基础类型的引用,因为编译器会自动为您完成。

c++ - "Unable to start program"(调试版本)

MicrosoftVisualStudioUnabletostartprogram'theprogram.exe'.Thisapplicationhasfailedtostartbecausetheapplicationconfigurationisincorrect.Reviewthemanifestfileforpossibleerrors.Reinstallingtheapplicationmayfixthisproblem.Formoredetails,pleaseseetheapplicationeventlog.OK问题程序是一个C++项目,没有MFC,没有AFX,使用的库

c++ - 如何编写新的 Windows Shell?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion我将如何编写新的WindowsVistaShell代码?