草庐IT

c++ - C/C++ : How to use the do-while(0); construct without compiler warnings like C4127?

我经常在我的#defines中使用do-while(0)结构,原因描述为inthisanswer。.此外,我正在尝试使用编译器的尽可能高的警告级别来捕捉更多潜在问题,并使我的代码更加健壮和跨平台。所以我通常将-Wall与gcc和/Wall与MSVC一起使用。不幸的是,MSVC提示do-while(0)构造:foo.c(36):warningC4127:conditionalexpressionisconstant我应该怎么处理这个警告?只是对所有文件全局禁用它?对我来说这似乎不是一个好主意。 最佳答案 总结:在这种特殊情况下,此警告

C++ boost : what's the cause of this warning?

我有一个带有Boost的简单C++,如下所示:#includeintmain(){std::stringlatlonStr="hello,ergr()()rg(rg)";boost::find_format_all(latlonStr,boost::token_finder(boost::is_any_of("(,)")),boost::const_formatter(""));这很好用;它将()的每次出现替换为""但是,我在编译时收到此警告:我使用的是MSVC2008,Boost1.37.0。1>Compiling...1>mainTest.cpp1>c:\work\minescou

java - log4j:WARN 在 web.xml 中找不到记录器的附加程序

我已经将log4jConfigLocation放在web.xml中,但我仍然收到以下警告:log4j:WARNNoappenderscouldbefoundforlogger⤦⤥(org.springframework.web.context.ContextLoader).log4j:WARNPleaseinitializethelog4jsystemproperly.我错过了什么?contextConfigLocation/WEB-INF/applicationContext.xmllog4jConfigLocation/WEB-INF/classes/log4j.propertie

c++ - 使用#pragma warning push/pop 是临时改变警告级别的正确方法吗?

有时很难编写完全不会发出警告的C++代码。然而,启用警告是个好主意。因此,通常需要禁用围绕某些特定构造的警告,并在所有其他代码段中启用它们。到目前为止,我已经看到了两种方法。第一种是使用#pragmawarning(push)和#pragmawarning(pop):#pragmawarning(push)#pragmawarning(disable:ThatWarning)//codewithThatWarninghere#pragmawarning(pop)第二种是使用#pragmawarning(default):#pragmawarning(disable:ThatWarnin

objective-c - 动态转发 : suppress Incomplete Implementation warning

我有一个公开一些方法的类,其实现由内部对象提供。我正在使用前向调用在运行时将方法调用分派(dispatch)给内部对象,但XCode提示,因为它找不到已声明方法的实现。我在SO上发现了一些其他类似的问题,但都通过设计更改解决了。我不想在这里讨论设计,但如果有人对此有任何建议,我有一个openquestion关于CodeReview,更适合这类讨论。我的问题是这里是否存在关闭XCode中IncompleteImplementation警告的方法。 最佳答案 您可以通过添加来抑制IncompleteImplementation警告#pr

ios - 'supportedInterfaceOrientations' : - Warning 实现中的返回类型冲突

升级到Xcode7.0后,我在UIViewControllerRotation方法中收到警告:-(NSUInteger)supportedInterfaceOrientations:Conflictingreturntypeinimplementationof'supportedInterfaceOrientations':'UIInterfaceOrientationMask'(aka'enumUIInterfaceOrientationMask')vs'NSUInteger'(aka'unsignedint')为什么会这样,我该如何解决?编辑:如果你去定义你会看到返回类型实际上已经

c++ - 为什么这个循环会产生 "warning: iteration 3u invokes undefined behavior"并输出超过 4 行?

编译:#includeintmain(){for(inti=0;i和gcc产生以下警告:warning:iteration3uinvokesundefinedbehavior[-Waggressive-loop-optimizations]std::cout我知道有符号整数溢出。我无法理解为什么i值会被溢出操作破坏?我已阅读Whydoesintegeroverflowonx86withGCCcauseaninfiniteloop?的答案,但我仍然不清楚为什么会发生这种情况——我知道“未定义”的意思是“任何事情都可能发生”,但是这种特定行为的根本原因是什么?在线:http://ideon

c++ - 默认情况下,在 Visual Studio 中从项目中删除安全警告 (_CRT_SECURE_NO_WARNINGS)

有没有办法为所有项目设置默认设置,以消除使用scanf()等函数时出现的预编译器安全警告。我发现您可以通过在项目选项中添加一行或在代码开头添加#define_CRT_SECURE_NO_WARNINGS来做到这一点。我发现自己不断地创建新项目来解决编程竞赛,并且添加以下内容真的很烦人(并且需要宝贵的时间):#ifdef_MSC_VER#define_CRT_SECURE_NO_WARNINGS#endif在代码的开头,或者每次启动新项目时在预编译器选项中设置。 最佳答案 在解决方案资源管理器中标记所有需要的项目。按Alt-F7或右键

ruby - 用于 Ruby 的 SublimeLinter : can I disable specific warnings (ie "assigned but unused variable")?

我喜欢SublimeLinterforSublimeText,但我不知道如何禁用不适用的警告。我经常遇到的一个例子是Sinatra应用程序的“警告:已分配但未使用的变量”。分散注意力以突出显示这些行。有没有办法根据类型抑制lint警告/“错误”?如何忽略特定的警告实例?谢谢! 最佳答案 使用per-linterignore_match设置:"ignore_match":["assignedbutunusedvariable"] 关于ruby-用于Ruby的SublimeLinter:ca

ruby - rvm system-wide install : Warning! PATH 未正确设置

我在Ubuntu12.10上的/usr/local/rvm/bin中安装了RVM的多用户版本。当我将Ruby从1.9.3升级到2.0.0时,这似乎导致每当我执行rvmversion或类似命令时弹出以下错误消息:$rvmversionWarning!PATHisnotproperlysetup,'/usr/local/rvm/gems/ruby-2.0.0-p247/bin'isnotatfirstplace,usuallythisiscausedbyshellinitializationfiles-checkthemfor'PATH=...'entries,itmightalsohel