草庐IT

auto-close

全部标签

c++ - C++1 7's deduced ` auto` 非类型 `template` 参数是否可以使用显式非类型参数模式匹配模板?

考虑这个例子(alsoavailableonwandbox):templateclass>voidtest(){}templatestructX{};正在尝试实例化test()在clang++4.0(trunk)导致编译错误:error:nomatchingfunctionforcallto'test'test();^~~~~~~note:candidatetemplateignored:invalidexplicitly-specifiedargumentfor1sttemplateparametervoidtest(){}我最初的假设/直觉是test可用于匹配任何template具

c++ - 什么是auto_ptr_ref,它实现了什么以及如何实现的

auto_ptr_ref文档here说这个这是一个工具类,允许进行某些转换,这些转换允许将auto_ptr对象传递给函数并从函数返回。有人可以解释一下auto_ptr_ref如何帮助实现这一目标。我只想了解auto_ptr类及其内部结构 最佳答案 这有点令人困惑。基本上,auto_ptr_ref存在是因为auto_ptr拷贝构造函数并不是标准意义上的拷贝构造函数。复制构造函数通常有一个如下所示的签名:X(constX&b);auto_ptr复制构造函数的签名如下所示:X(X&b)这是因为auto_ptr需要修改从中复制的对象,以便将

c++ - 对 boost::timer::auto_cpu_timer 的 undefined reference

我尝试使用g++4.4在Debian的远程服务器上使用boost库编译小型.cpp文件。为此,我使用Netbeans。我的家用机器在Windows7上。解决了一些链接下一个代码的问题后#include#include#includeintmain(){boost::timer::auto_cpu_timerac;//line5return0;//line6}产生2个错误:第5行:对boost::timer::auto_cpu_timer::auto_cpu_timer(short)'的undefinedreference第6行:对boost::timer::auto_cpu_timer

c++ - 使用 'auto' 和 std::minmax 观察奇怪的行为

我在SUSEEnterpriseLinux11上使用GCC4.7.2和Boost1.58.0。我有以下代码片段,它基本上通过多边形列表来计算它们的长度/宽度。在std::minmax函数中使用“auto”关键字时,我看到了奇怪的输出。为了进行比较,我还声明了第二个变量,其中明确声明了类型(即dim与dim1)。namespacegtl=boost::polygon;typedefgtl::polygon_90_dataLayoutPolygon;typedefgtl::rectangle_dataLayoutRectangle;staticLayoutFeatureVeccalc_st

c++ - C++ 11 auto关键字多少太多了?

我一直在为复杂的模板化类型使用C++11标准中可用的新auto关键字,我相信它就是为此而设计的。但我也将它用于以下用途:autofoo=std::make_shared();更怀疑的是:autofoo=bla();//wherebla()returnashared_ptr我还没有看到很多关于这个话题的讨论。似乎auto可能被过度使用,因为类型通常是一种文档和健全性检查的形式。您在使用auto方面划清界限,这个新功能的推荐用例是什么?澄清一下:我不是在征求哲学意见;我正在询问标准委员会对这个关键字的预期用途,并可能对在实践中如何实现预期用途发表评论。 最佳答案

c++ - 如果我将变量重新定义为 auto,并且推导的类型相同,它是否格式正确?

这个问题在这里已经有了答案:Doesadeclarationusing"auto"matchanexterndeclarationthatusesaconcretetypespecifier?(3个答案)关闭4年前。看看这个片段:inta;externintb;autob=a;它的格式是否正确?Clang成功编译它,但GCC和MSVC没有。(我回答Howtodeclareanddefineastaticmemberwithdeducedtype?时出现了这个问题)

c++ - POSIX/UNIX : How to reliably close a file descriptor

问题:在以EINTR或EIO失败的close()系统调用之后,不确定文件是否已关闭。(http://pubs.opengroup.org/onlinepubs/9699919799/)在多线程应用中,重试关闭可能会关闭其他线程打开的不相关文件。不重试关闭可能会导致无法使用的打开文件描述符堆积起来。一个干净的解决方案可能涉及在新关闭的文件描述符上调用fstat()和一个相当复杂的锁定机制。此外,使用单个互斥锁序列化所有打开/关闭/接受/...调用可能是一种选择。这些解决方案没有考虑到库函数可能会以不可控的方式自行打开和关闭文件,例如,std::thread::hardware_concu

【C++初阶】二、入门知识讲解(引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr)

=========================================================================相关代码gitee自取:C语言学习日记:加油努力(gitee.com) =========================================================================接上期:【C++初阶】一、入门知识讲解(C++关键字、命名空间、C++输入&输出、缺省参数、函数重载)-CSDN博客 ===========================================================

c++ - `auto` 说明符的编译时间是否较慢?

从C++11开始,我们可以使用autoa=1+2而不是inta=1+2并且编译器推断出a的类型本身。它是如何工作的?在编译时(更多操作)是否比自己声明类型慢? 最佳答案 auto要求C++11编译器生成一些有限typeinference(查看Ocaml如果你想要一些更性感的类型推理语言)。但是开销只是编译时的。如果你替换autoa=1+2;与inta=1+2;(两者具有相同的含义,请参阅answerbysimplicis)并且如果您要求编译器optimize(甚至可能不要求优化)你可能会得到相同的machinecode.另见this

c - 套接字保持在 CLOSE_WAIT 状态

当应用程序启动时,我正在使用Wininet对我的服务器执行检查。问题是在调用CloseInternetHandle之后套接字状态仍然是CLOSE_WAIT,正如在netstat上看到的那样,最糟糕的是它永远不会改变它的状态。这是我使用的简单代码。我做错了什么?hInternet=InternetOpen(NULL,INTERNETOPENTYPEPRECONFIG,NULL,NULL,0);if(hInternet){hFile=InternetOpenUrl(hInternet,url,NULL,0,INTERNETFLAGRELOAD,0);InternetReadFile(hFi