Tag: 编译器警告

Visual Studio警告级别的含义?

在Web应用程序项目的构build选项卡上,我有一个名为“警告级别”的设置。 我可以设置从0到4的值。这些值是什么意思? 值0会更严格,会产生更多的警告,反之亦然? 我还没有find任何文件,但也许我看错了地方。

如何禁用Rust中未使用的代码警告?

music.rs|19 col 1| 22:2 warning: code is never used: `SemanticDirection`, #[warn(dead_code)] on by default 我会重新把这些警告转回到任何严肃的事情上,但是我只是在修改这个语言,而这正在推动我的蝙蝠。 我试着添加: #[allow(dead_code)] 我的代码,但没有工作。

ReSharper / C#中的“委托减法有不可预知的结果”?

当使用myDelegate -= eventHandler ReSharper(版本6)的问题: 代表减法有不可预知的结果 JetBrains在这里解释了这个理由。 这个解释是有道理的,在阅读之后,我怀疑我对代表的所有使用。 那如何 , 我可以写一个非自动事件,而不使ReSharper脾气暴躁? 或者,有没有更好的和/或“正确”的方式来实现呢? 或者,我可以忽略ReSharper? 这里是简化的代码: public delegate void MyHandler (object sender); MyHandler _myEvent; public event MyHandler MyEvent { add { _myEvent += value; DoSomethingElse(); } remove { _myEvent -= value; // <– ReSharper warning here } }

如何在Objective-C中检测未使用的方法和#import

在iPhone应用程序上工作了很长时间之后,我意识到我的代码非常脏,包含几个#import和方法,这些方法根本没有被调用或有用。 我想知道是否有任何编译器指令或方法来检测这些无用的代码行。 Xcode有任何工具来检测这个?

g ++ -Wreorder有什么意义?

g ++ -Wall选项包括-Wreorder。 下面介绍这个选项的作用。 我不明白为什么有人会关心(特别是在-Wall中默认打开这个function)。 -Wreorder(仅限C ++) 警告代码中给出的成员初始值设定项的顺序不是 匹配他们必须执行的顺序。 例如: struct A { int i; int j; A():j(0),i(1){} }; 编译器将重新排列i和j的成员初始值设定项 匹配成员的声明顺序,发出警告 影响。 此警告由-Wall启用。

如何打开(字面上)GCC的所有警告?

我希望启用 – 从字面上 – GCC 所有的警告。 (你会认为这很容易…) 你会想 – 可能会做的伎俩,但不是! 还需要-Wextra 。 你会想-Wextra可能会诀窍,但不是! 并非所有列出的警告(例如-Wshadow )都是由此启用的。 而且我还不知道这个清单是否全面。 我如何告诉GCC启用(如果没有,还有或者是) 所有的警告?

我=(i,++ i,1)+1; 做?

在阅读了关于未定义的行为和顺序点的答案后,我写了一个小程序: #include <stdio.h> int main(void) { int i = 5; i = (i, ++i, 1) + 1; printf("%d\n", i); return 0; } 输出是2 。 哦,上帝,我没有看到递减! 这里发生了什么? 另外,在编译上面的代码的时候,我得到了一个警告: px.c:5:8:警告:逗号expression式的左侧操作数不起作用 [-Wunused-value] i = (i, ++i, 1) + 1; ^ 为什么? 但可能会自动回答我的第一个问题的答案。

什么是“android:allowBackup”?

自从新的ADT预览版本(版本21)以来,它们有一个新的lint警告,告诉我清单文件(在应用程序标签中)的下一件事情: 应该明确地将android:allowBackup设置为true或false(默认情况下是true,并且可以对应用程序的数据有一些安全性影响) 在官方网站上 ,他们写道: 几个新的检查:你必须明确地决定你的应用程序是否允许备份和标签检查。 有一个新的命令行标志来设置库path。 在编辑时增加lint分析的许多改进。 这是什么警告? 什么是备份function,我如何使用它? 另外,为什么警告告诉我它有安全隐患? 禁用此function的缺点和优点是什么? 清单的备份有两个概念: “android: allowBackup ”允许通过adb进行备份和恢复,如下所示: 是否允许应用程序参与备份和还原基础架构。 如果此属性设置为false,那么即使执行全系统备份,也不会执行应用程序的备份或还原,否则会导致所有应用程序数据通过adb保存。 此属性的默认值为true。 这被认为是一个安全问题,因为人们可以通过ADB备份您的应用程序,然后将您的应用程序的私人数据存入PC。 不过,我认为这不是问题,因为大多数用户不知道adb是什么,如果他们这样做,他们也会知道如何根设备。 ADBfunction只有在设备启用了debuggingfunction的情况下才能工作,这需要用户启用它。 因此,只有将其设备连接到PC并启用debuggingfunction的用户才会受到影响。 如果他们在使用ADB工具的PC上有恶意应用程序,这可能会造成问题,因为应用程序可能读取私有存储数据。 我认为Google应该在开发者类别中添加一项默认禁用的function,以允许通过ADB备份和恢复应用程序。 “android: backupAgent ”允许使用云的备份和还原function,如下所示: 实现应用程序的备份代理的类的名称,它是BackupAgent的一个子类。 属性值应该是完全限定的类名(例如“com.example.project.MyBackupAgent”)。 但是,如果名称的第一个字符是一个句点(例如,“.MyBackupAgent”),则会将其附加到元素中指定的包名称。 没有默认。 该名称必须指定。 这不是一个安全问题。

是否存在static_warning?

我意识到这个提到Boost的“STATIC WARNING”的问题,但是我想再问一次,具体地说,我该如何实现一个类似于static_assert的static_warning ,但是只在编译时发出警告 ,而不是中止编译错误。 我想要一些类似于Alexandrescu提出的在C ++之前的11天中静态断言的提议,它以某种方式设法打印一些有用的上下文信息作为错误的一部分。 要求用户启用某些标准的编译器警告才能使这种构造工作(也许是“无效的指针转换”或“打破严格的别名规则”) – 任何应该是正常编译的一部分的警告都是可以接受的使用。 总之,我想static_warning(false, "Hello world"); 创build一个编译器警告,应该以某种方式在警告消息中包含string“hello world”。 在GCC和MSVC中这是可能的,以及如何? 我乐意给予任何特别聪明的解决scheme一个小的奖励赏金。 作为一点解释:当我想到这个问题的时候,我得到了这个想法:静态警告将是一个有用的方式来跟踪复杂的模板特化,这是很难debugging的复杂模板特化。 静态警告可以用作编译器发出“我正在编译这部分代码”的简单信号灯。 更新。 理想情况下,警告将在以下设置中触发: template <typename T> struct Foo { static_warning(std::is_pointer<T>::value, "Attempting to use pointer type."); // … }; int main() { Foo<int> a; Foo<int*> b; }

编译期间输出的“忽略InnerClasses属性”警告输出是什么?

我是Android Ical4j ,正在使用Ical4j库来parsingICS(Outlook日历)文件。 但是,当我在Eclipse中构build应用程序时,在控制台中会出现以下警告多次: 警告:忽略一个匿名内部类的InnerClasses属性,该类没有附带EnclosingMethod属性。 (这个类可能是由一个破碎的编译器产生的。) 这有什么影响? 我该如何解决这个问题?