草庐IT

c++ - 在 constexpr 函数中返回一个 C 字符串 : why no warning from the compiler?

考虑以下代码:constexprautof(){autostr="HelloWorld!";returnstr;}intmain(intargc,char*argv[]){staticconstexprautostr=f();std::cout我的编译器不显示任何警告是否正常?它是定义的行为吗?我能保证程序会显示"HelloWorld!"吗?我希望"HelloWorld!"不会超出函数的范围... 最佳答案 在C++中stringliterals有staticstorageduration只要程序运行就可以生存。因此,指向从f返回的

c++ - 关于 "warning C4312: ' 类型转换的问题'”

这是我的代码:HWNDWebformCreate(HWNDhParent,UINTid){returnCreateWindowEx(0,WEBFORM_CLASS,_T("about:blank"),WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE,0,0,100,100,hParent,(HMENU)id,GetModuleHandle(NULL),0);}这是我收到的警告:warningC4312:'typecast':conversionfrom'UINT'to'HMENU'ofgreatersize这些是我的问题:为什么编译器认为转换为更大的类型是个坏主意

c++ - 我可以从 "treat warnings as errors"中排除一些特定的警告而不禁用它们吗?

在我的VisualC++代码中,我想要/WX-“将警告视为错误”。这让我处理每个警告,包括C4996-“Xwasdeclareddeprecated”我不想解决-我现在不想更改代码,我不想禁用C4996以便它保留在输出中。所以理想情况下我想要这样的东西:#pragmawarning(ExcludeFromWX:4996)因此,当使用/WX时,除此之外的所有警告都被视为错误,并且仅显示此警告并继续编译。是否有可能得到这样的行为? 最佳答案 您可以使用以下pragma重置指定的警告。我没有测试过,你也没有提到尝试这个:更新更改警告级别应

c++ - #pragma warning 不抑制警告

我的一个.cpp文件由于第3方header生成警告C4275#include...(由于DLL导出类继承自非据我所知,DLL导出类)。我添加了一行:#pragmawarning(disable:4275)作为我的.cpp文件的第一行,但警告仍在生成。这是在VC++2008上,没有使用PCH。为什么我的#pragma不起作用,并且(除了更改第3方代码之外)我该如何解决这个问题? 最佳答案 生成一个预处理文件,您可能会发现其他一些头文件重新启用警告。 关于c++-#pragmawarning

【已解决】redis启动错误: Warning: no config file specified, using the default config. In order to specify a

Warning:noconfigfilespecified,usingthedefaultconfig.Inordertospecifyaconfigredis启动报如下错误:意思是:启动时无法找到配置文件,远程无法连接解决方法:第一种:在cmd命令行中执行redis-server.exeredis.windows.conf第二种:在redis的根目录下新建一个start.bat文件,将redis-server.exeredis.windows.conf放在文件里,双击start.bat即可启动。也可以解决上述问题下面说说一个小问题:如何更改密码?首先如果是想一劳永逸,那么在redis.win

c++ - 临时 : No compiler warning? 的绑定(bind)常量&

我有一个TestClass和一个const&成员变量。我从不同的地方和自己的经验知道,使用临时值的引用来初始化此const&是个坏主意。所以我很惊讶以下代码可以正常编译(使用gcc-4.9.1、clang-3.5和scan-build-3.5)但无法正常运行。classTestClass{public://removingthe"reference"wouldremovethetemporary-problemconststd::string&d;TestClass(conststd::string&d):d(d){//"d"isaconst-ref,cannotbechangedat

c++ - 如何将 "warnings as error"规则添加到 Qt .pro 文件?

当我通常处理C++项目时,我做的第一件事就是在我的编译器上设置“将警告视为错误”。当使用Qt时,qmake会为您生成Makefile,并且不会在编译命令中包含此选项。我很确定有一种方法可以将这样的选项(和其他选项)添加到生成的Makefile中,但我想不通。我该怎么做?我使用Qt的开源版本和g++作为编译器。 最佳答案 您可以使用QMAKE_CXXFLAGS在pro文件中指定编译器标志:QMAKE_CXXFLAGS+=-Werror 关于c++-如何将"warningsaserror"规

java - Maven 源代码 :jar task results in warnings

我们使用Maven3.0.5作为我们项目的构建工具,并且只有Windows客户端和服务器。在本地构建软件会提供干净的Maven输出,没有任何警告。在我们的ci服务器Jenkins上运行相同的构建,我们收到此警告:[WARNING]FailedtogetClassfororg.apache.maven.plugin.source.SourceJarMojo当我们在构建中包含source:jar目标时,我们会尽快收到警告。mvncmd:-ecleansource:jar.有谁知道这意味着什么,以及如何摆脱它?我找不到任何修复方法的提示,但在谷歌上搜索很多Jenkins构建日志都包含此警告。

Windows 10 Powershell 调用-WebRequest "Windows Security Warning "

好吧,在我看来,这是Microsoft需要立即解决的一个大问题。重现此步骤的步骤:powershell>Invoke-WebRequest"anywebsitewithcookies.com"(让我们以microsoft.com为例)您会收到以下警告:http://i.stack.imgur.com/TR023.jpg现在这真是可怕。为什么Microsoft认为这是可以接受的,这超出了我的理解,但是在Windows8.1中有一个解决方法。如果你进入:控制面板>Internet选项>隐私http://i.stack.imgur.com/OSLS3.jpg您可以将cookie设置为始终接受

c++ - 摆脱 "warning C4267 possible loss of data"的最佳策略是什么?

我将一些遗留代码从win32移植到win64。不是因为win32对象大小对我们的需求来说太小了,而是因为win64现在更标准了,我们希望将所有环境移植到这种格式(我们还使用一些3rd方库,在64位中提供比在32位中更好的性能).我们最终得到了很多;warningC4267:'argument':conversionfrom'size_t'to'...',possiblelossofdata主要是由于这样的代码:unsignedintsize=v.size();其中v是一个STL容器。我知道警告为什么有意义,我知道为什么发出警告以及如何修复它。但是,在这个具体示例中,我们从未遇到过容器大