草庐IT

auto-versioning

全部标签

c++ - std::unique_ptr vs std::shared_ptr vs std::weak_ptr vs std::auto_ptr vs 原始指针

与使用原始指针的类似(但不限于)一些高级技术相比,每个智能指针的等效用途是什么?我的理解很少,但从我能收集到的情况来看:原始指针:只有在你真的、真的、真的、真的知道你在做什么并且在界面后面小心地隐藏了用法的情况下才使用。std::auto_ptr:已过时永不使用。std::unique_ptr:在分配时转移所有权的单例指针。std::shared_ptr:引用计数指针,在分配时不会转移所有权,但会增加其引用计数。当所有引用离开作用域或显式std::shared_ptr::reset标的deallocator被调用。std::weak_ptr:子类型std::shared_ptr它不会增

c++ - 如果引用对象是 const,则 const auto & 和 auto & 之间的区别

//case1constinti=42;constauto&k=i;//case2constinti=42;auto&k=i;在这种情况下,我们是否需要auto之前的const关键字?毕竟,对自动推导类型的引用(k)将包括对象的顶级const(constinti)。所以我相信k在这两种情况下都会引用一个常量(constint&k)。如果是这样,这是否意味着constauto&k=i;在case1被编译器替换为只是constint&k=i;(auto被替换为int)?而在情况2中,auto被替换为constint? 最佳答案 auto

c++ - 如果函数 f() 返回一个指针,这是正确的 : auto* v = f() OR auto v = f()?

我几乎在任何地方都使用c++11auto关键字。不过,我不确定在这种情况下我是否正确使用它。考虑以下简单示例:(http://ideone.com/TxLJlx)#includeconstchar*f(){return"Hello";}intmain(){autos1=f();auto*s2=f();std::coutauto和auto*似乎都可以工作,并且似乎做同样的事情。这个假设是错误的吗?为什么两者都给出相同的结果?在这种情况下,auto的正确用法是什么? 最佳答案 它们的含义相同-在这两种情况下,类型都是constchar*

C++ auto on int16_t 强制转换为整数

我是C++17的新手,正在尝试理解decltype关键字以及它如何与auto配对。以下是产生意外结果的代码片段。#include#include#includeusingnamespacestd;intmain(){int16_tmid=4;autolow=mid-static_cast(2);autohi=mid+static_cast(2);int16_tval;cin>>val;val=std::clamp(val,low,hi);return0;}令人惊讶的是,编译器告诉我clamp不匹配,并且low和high是int.如果我将auto更改为int16_t一切都很好,并且所有类

c++ - fwrite 阻塞在 "<?xml version"

当字符串通过fwrite写入文件,后续的写入操作会变慢。这段代码:#include#include#includeintmain(){constlongindex(15000000);clock_tstart_time(clock());FILE*file_stream1=fopen("test1.txt","wb");fwrite("(clock()-start_time)/CLOCKS_PER_SEC(clock()-start_time)/CLOCKS_PER_SEC(clock()-start_time)/CLOCKS_PER_SEC给我这个结果:Operation1took:

C++:使用 auto 还是 typedef?

已结束。这个问题是off-topic.它目前不接受答案。想要改进这个问题?Updatethequestion所以它是on-topic堆栈溢出。关闭10年前。Improvethisquestion我不想在这里故意问一个主观的问题,但我没有其他人可以直接问这个......我正在尝试在我的团队中“以身作则”,在我编写的新代码中采用更现代的C++概念。我的同事对模板有点害羞,并且提示必须输入unique_ptr或shared_ptr而不仅仅是Foobar*在使用我最近创建的一些类时(工厂方法返回unique_ptrs,我使用shared_ptr将这些对象的列表存储在vector中)。他们扭了扭

c++ - 从函数正确传播 `decltype(auto)` 变量

(这是的后续报道“Arethereanyrealisticusecasesfor`decltype(auto)`variables?”)考虑以下场景-我想将一个函数f传递给另一个函数invoke_log_return,它将:调用f;打印一些东西到stdout;返回f的结果,避免不必要的复制/移动,允许复制省略。请注意,如果f抛出,则不应将任何内容打印到stdout。这是我目前所拥有的:templatedecltype(auto)invoke_log_return(F&&f){decltype(auto)result{std::forward(f)()};std::printf("...

.net - 在 Visual Studio 2010 中,为什么要创建 .NETFramework,Version=v4.0.AssemblyAttributes.cpp 文件,我可以禁用它吗?

我最近升级到VisualStudio2010。现在,当我构建项目时,我得到一行内容:1>.NETFramework,Version=v4.0.AssemblyAttributes.cpp我了解到这是新构建引擎msbuild.exe的结果,但该文件实际上是自动创建的,并放置在我的本地临时目录(c:\DocumentsandSettings\me\LocalSettings\温度)。有谁知道为什么要创建这个文件,我是否可以禁用它的创建?顺便说一句,在我看来,它似乎没有任何用处。见下文:#using[assembly:System::Runtime::Versioning::TargetFr

python - ConfigurationError : Server at 127. 0.0.1 :27017 reports wire version 0, 但是这个版本的 PyMongo 至少需要 2 个(MongoDB 2.6)

我正在尝试使用mongoDB和PythonFlask构建应用程序。运行应用程序时,出现以下错误:ConfigurationError:Serverat127.0.0.1:27017reportswireversion0,butthisversionofPyMongorequiresatleast2(MongoDB2.6).有人可以帮我吗?谢谢,巴尔温德 最佳答案 这是一个非常烦人和奇怪的问题。但这个问题只需为我降级pymongo库即可解决。pipinstallpymongo==3.4.0在此找到答案:http://d-prototy

python - ConfigurationError : Server at 127. 0.0.1 :27017 reports wire version 0, 但是这个版本的 PyMongo 至少需要 2 个(MongoDB 2.6)

我正在尝试使用mongoDB和PythonFlask构建应用程序。运行应用程序时,出现以下错误:ConfigurationError:Serverat127.0.0.1:27017reportswireversion0,butthisversionofPyMongorequiresatleast2(MongoDB2.6).有人可以帮我吗?谢谢,巴尔温德 最佳答案 这是一个非常烦人和奇怪的问题。但这个问题只需为我降级pymongo库即可解决。pipinstallpymongo==3.4.0在此找到答案:http://d-prototy