草庐IT

expose_used

全部标签

c++ - Noexcept 对派生类构造函数的 promise : can that be used without promising noexcept on base constructor?

假设我有一个类classC:publicB{public:C()noexcept;}noexcept说明符是否需要基类的相同promise?也就是说,当我考虑使用noexcept时,我是只看C::C()的行为还是我还需要考虑B::B()是否可能抛出异常?例如,如果B::B抛出异常,它会传播到C::C还是传播到请求新类实例的代码?--如果传播到C::C,如果基类不是noexceptforconstructor,那将是避免noexceptforconstructor的原因之一。 最佳答案 技术上†不要求将基类构造函数声明为noexcep

c++ - `constexpr` 变量 "used in its own initializer": Clang vs. GCC

这个问题似乎与anexistingone有关,但我不明白theanswerthere中提供的“可移植解决方法”(涉及constautothis_=this;)而且我认为下面的例子更容易理解。我正在使用以下C++17代码片段(livedemo):#includestructTest{constchar*name_{nullptr};constTest*src_{nullptr};constexprTest(constchar*name)noexcept:name_{name}{}constexprTest(constTest&src)noexcept:src_{&src}{name_=s

c++ - "uses of target_link_libraries must be either all-keyword or all-plain"

我设法构建了llvm和clang,现在我正在尝试根据clangdocs创建一个ClangTool.但是当我尝试构建它时出现以下错误:CMakeErrorattools/clang/tools/loop-convert/CMakeLists.txt:6(target_link_libraries):Thekeywordsignaturefortarget_link_librarieshasalreadybeenusedwiththetarget"loop-convert".Allusesoftarget_link_librarieswithatargetmustbeeitherall-k

c++ - 错误 : use of deleted function ‘std::thread::thread(const std::thread&)'

下面的代码编译并按预期工作。结构(类)A派生自std::thread并扩展了一个int。main代码创建一些线程,然后等待它们完成。问题在于,虽然代码编译时没有结构A中的析构函数,但当析构函数未注释时(~A(){})我得到:error:useofdeletedfunction‘std::thread::thread(conststd::thread&)'我不知道为什么。此外,我不明白为什么代码既适用于push_back也适用于emplace_back而根据我的理解它不应该适用于push_back.#include#include#includestructA:std::thread{i

c++ - 为什么 using 指令不是 "associate"与普通函数?

根据thisquestion在using指令之后定义类方法是有效的,而不是将它们包含在namespaceblock中。然而,对于普通函数来说,情况似乎并非如此。考虑:问候语.hh#pragmaoncenamespaceNS{classGreeting{public:voidhello();};voidotherHello();}问候语.cc#include"Greeting.hh"#includeusingnamespaceNS;voidGreeting::hello(){std::coutmain.cc#include"Greeting.hh"intmain(){NS::Greeti

C++ 命名空间 'using' 类枚举的声明

我非常了解C++“using”声明和指令的工作原理。但是,我对此感到难过......也许这是不可能的?我想避免对我的枚举变量进行质量检查:namespaceFoo{classMyClass{public:enumMyEnum{X,Y,Z};}}现在,从该命名空间之外,我希望能够执行以下操作:usingFoo::MyClass.MyEnum;MyEnumletter=MyEnum::x;但显然这不是解决问题的方法?我打赌这是可能的,但我的符号是错误的...我也尝试使用Foo::MyClass::MyEnum,但编译器认为Foo::MyClass是一个命名空间。补充:如您所见,必须完全声明

解决httpd占用80端口导致Nginx启动不成功报nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

一、问题描述    今天在建自己小网站时启动Nginx时,发现其报下列错误,意思是因为80端口被占用导致Nginx启动失败。 二、分析问题    既然是因为80端口被占用了,那我们就要首先排查错误缘由,使用下面该命令对80端口进行摸排,结果显示80端口被httpd这个程序一直占用着。netstat-ntlp|grep80  三、解决办法    在网上找过一些办法,结果都杀不死该进程。如kill-9端口号这些等都无用。    经过查找资料得知,使用下面这个命令,然后再重启Nginx即可完成成功运行。fuser-k80/tcpcd/usr/local/nginx/sbin./nginx四、运行结果

c++ - SSL_CTX_use_PrivateKey_file() 失败

我正在Windows上编写客户端应用程序,它与服务器建立SSL连接,并且服务器请求客户端证书进行身份验证。服务器为我提供了一个.pfx文件,然后我使用openssl命令行工具来获取证书和私钥,如下所示:opensslpkcs12-infilename.pfx-clcerts-nokeys-outcert.pemopensslpkcs12-infilename.pfx-nocerts-outkey.pem之后,我尝试使用openssl中的函数加载证书和私钥,如下所示,但是SSL_CTX_use_PrivateKey_file()总是失败,错误消息是“error:0906D06C:PEMr

c++ - 物理引擎 : use double or single precision?

我正在从头开始制作一个刚体物理引擎(用于教育目的),我想知道我应该为它选择单精度还是doublefloat。我将使用OpenGL对其进行可视化,并使用glm库在引擎内部计算内容以及进行可视化。惯例似乎是在几乎所有地方都为OpenGL使用float,glm::vec3和glm::vec4似乎在内部使用float.我还注意到虽然有glm::dvec3和glm::dvec4但似乎没有人使用它。我如何决定使用哪个?double似乎很有意义,因为它具有更高的精度并且在今天的硬件上性能几乎相同(据我所知),但其他一切似乎都使用float除了一些GLu的功能和一些GLFW的。

c++ - `using`的开销

对于我的问题,我可以通过两种方式使用using指令。他们基本上归结为这些选项:templatestructA{private://DefineourtypesusingWrapperType=Wrapper;public:U*operator()(U*g)const{//TODO:useWrapperType}};或:structB{templateU*operator()(U*g)const{//Definethetypeshereinstead.usingWrapperType=Wrapper;//TODO:useWrapperType}};在这两种情况下,都会有其他的类模板参数。