草庐IT

technically-speaking-what-makes-g

全部标签

c++ - 右值引用 : what exactly are "temporary" objects, 它们的范围是什么,它们存储在哪里?

rvaluereferences:whatexactlyare"temporary"objects,whatistheirscope,andwherearetheystored?阅读一些文章,右值总是被定义为“临时”对象,如Animal(),其中Animal是一个类,或者一些文字,例如10。但是,右值/“临时”对象的正式定义是什么?newAnimal()是否也被认为是“临时”对象?或者它只是堆栈上的值,例如Animal()和存储在代码中的文字?此外,这些“临时”对象存储在哪里,它们的作用域是什么,以及对这些值的右值引用的有效期有多长? 最佳答案

c++ - boost::make_shared 不是在调用(放置)运算符 new 吗?

我第一次使用boost::make_shared来创建共享指针指向的对象。主要是因为我们的代码太慢了,单次分配确实有助于boost性能。在以“硬手动方式”修复了一些内存泄漏之后,我决定通过覆盖所有相关类的新运算符来实现一个简单的内存泄漏检测器,仅用于计算在我们的应用程序的特定点哪些对象仍然存在。我之前已经实现过几次,惊讶地发现我的代码不再检测到任何对象。我认为我所要做的就是覆盖“placementnew”而不是“normal”operatornew,因为make_shared的boost网站文档中有以下内容:"Effects:Allocatesmemorysuitableforanob

c++ - 初始化 shared_ptr 成员变量,new vs make_shared?

当初始化一个shared_ptr成员变量时://.hclassCustomer{public:Customer();private:std::shared_ptrsomething_;}//.cppCustomer():something_(newOtherClass()){}对比Customer():something_(std::make_shared()){}是否允许使用make_shared版本?我似乎总是看到第一个版本,哪个是首选? 最佳答案 不允许make_shared的唯一时间是:如果您得到一个由其他人分配的裸指针并将

Linux: make/Makefile 相关的知识

背景:会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,VisualC++的nmake,Linux下GNU的

c++ - 为什么要用 make_unique 调用来初始化 unique_ptr?

取自:http://herbsutter.com/2013/05/22/gotw-5-solution-overriding-virtual-functions/为什么要写:autopb=unique_ptr{make_unique()};不仅仅是:autopb=make_unique();我唯一的猜测是,如果我们想要auto,我们需要帮助它推断出正确的类型(这里是base)。如果是这样,那么对我来说这将是一个值得怀疑的优点..键入auto然后在=的右侧键入大量初始化..我错过了什么? 最佳答案 嗯,重点是第一个选项使pb一个uni

c++ - 如何使用 std::make_heap

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestionhttp://www.cplusplus.com/reference/algorithm/push_heap/太乱了。要在std中使用堆,首先将元素放入vector中,然后调用std::make_heap(v.begin(),v.end());如果我向vector中插入元素会怎样?堆会弄乱吗?比如v一开始可能有10个元素,我只做第3个元素到第7个元素的堆,现在我往第5个和第9个位置插入元素,这个过程中堆结

c++ - 通过 make_shared 用 shared_ptr 包装动态数组

我想将一些字节写入数组。为了使用现代C++,我决定使用智能指针。#include#includeusingnamespacestd;voidwriteUint32_t(uint32_tvalue,unsignedchar*p){*p=static_cast((value>>24)&0xFF);*(++p)=static_cast((value>>16)&0xFF);*(++p)=static_cast((value>>8)&0xFF);*(++p)=static_cast((value)&0xFF);}intmain(){autobuf=make_shared(512);uint32_

c++ - 编译器编程 : What are the most fundamental ingredients?

我有兴趣编写一个非常简约的编译器。我想编写一个满足以下条件的小软件(用C/C++):以ELF格式输出(*nix)输入是一个文本文件类C语法和句法没有链接器没有预处理器非常小(最多1-2KLOC)语言特点:原生数据类型:char、int和float数组(适用于所有native数据类型)变量控制结构(if-else)职能循环(会很好)简单的代数(div、add、sub、mul、bool表达式、位移等)内联汇编(用于系统调用)谁能告诉我如何开始?我不知道编译器由哪些部分组成(至少在我可以立即开始的意义上)以及如何对它们进行编程。谢谢你的想法。 最佳答案

c++ - move : what does it take?

使用std::string的move赋值运算符(在VC11中)需要什么?我希望它会自动使用,因为在赋值后不再需要v。在这种情况下是否需要std::move?如果是这样,我还不如使用非C++11交换。#includestructuser_t{voidset_name(std::stringv){name_=v;//swap(name_,v);//name_=std::move(v);}std::stringname_;};intmain(){user_tu;u.set_name("Olaf");return0;} 最佳答案 Ihope

ios - build设置 : What changes should I do in the build settings so that on releasing the app it will show the languages on App Store as only English?

我在上传iOS应用程序时犯了一些错误,这使得我的应用程序在AppStore上显示为英语和德语。场景是我将(目标的info.plist)中的“本地化本地开发区域”键设置为德国,而我的应用程序实际上是一个英语应用程序(适用于所有地区)。但我不确定将此key更改为美国是否可以将应用程序的Appstore语言更改为仅英语。除此之外,我还在(项目信息)中的Localizations中将语言设置为:1.英文-开发语言2.德语我应该在设置中做哪些更改,以便在发布应用程序时它在AppStore中仅显示英语语言? 最佳答案 在尝试将应用程序上传到应用