compiler-warnings相关内容
g ++ -Wall选项包括-Wreorder。此选项的作用如下所述。这是不明显的,为什么有人会关心(特别是足以打开在默认情况下在-Wall)。 -Wreorder only) 当代码中给出的成员初始化器的顺序不是 匹配它们必须执行的顺序时发出警告。例如: struct A { int i; int j; A():j(0),i(1){} }; 编译器会将i和j的成
..
我想使用一组全局标志来编译项目,这意味着在我指定的顶层CMakeLists.txt文件中: ADD_DEFINITIONS(-Wall -Weffc ++ -pedantic -std = c ++ 0x) 但是,对于一个特定的文件(我们说“foo.cpp”)在一个子目录,我想切换 编译标志不应用-Weffc ++(包括商业库我不能改变)。为了简化情况只使用-Wall,我尝
..
我刚刚粘贴了一个url到我的代码,并忘记了评论,但我很惊讶地看到MSVC ++编译成功。我的代码是这样, void my_function() { http://www.google .co.in / } 如何通过MSVC ++编译? 解决方案 实际上, http 后跟作为标签处理,您可以在 goto 语句(如 goto http; ),其余部分(即 //
..
我收到以下警告: 警告:从'void(MyClass :: *) 'to'void(*)(byte)' 这是因为我需要传递作为参数a成员函数而不是普通函数。但是程序运行正常。 我想禁用此警告(Wno-bad-function-cast不适用于C ++)或实现不同的 解决方案 否。认真对待这个警告。 指向成员函数的指针( void(MyClass
..
可能重复: 我有以下代码,虽然我没有复制完整的代码,因为它是巨大的。 以下代码在模板类中,我收到如下警告。由于模板中的警告,我无法实例化它并获得“从这里实例化”错误。 警告:不推荐从字符串常量转换至'char *'' void ErrorMessageInRaphsodyCode(char * pcCompleteMessage,char * pcMessage,char *
..
此代码说明了我认为应该被视为不良做法的事情,并从编译器获取有关重新定义或屏蔽变量的警告: #include int * a; int * f() { int * a = new int; return a; } int main() { std :: cout
..
请考虑以下程序: #include x = {0}; // 警告! x = {{0}} // no warning return 0; } 第一次初始化导致gcc上的警告4.7.2 ... main.cpp:5:22:warning:unused var
..
我今天正在写一些代码,并得到了一个奇怪的编译错误,这似乎是由成员变量以不同的顺序初始化造成的。 示例: class Test { int a; int b; public: Test():b(1),a(2){ } }; int main(){ 测试测试; return 0; } 然后,如果我使用 -Werror -Wall :
..
我试图回答此问题。如接受的答案所建议的,该代码的问题是并非所有控制路径都返回值。我试过这个代码在VC9编译器,它给了我一个警告。我的问题是为什么只是一个警告,而不是错误?另外,如果不返回值的路径被执行,函数将返回什么(它必须返回一些东西)? 解决方案 无法从堆栈中返回一个值具有非 void 返回类型的函数会导致未定义的行为,但不是语义错误。 根据我可以确定的原因很大程度上是历史的。
..
我想知道什么开关你传递给gcc编译器关闭未使用的变量警告?我在Windows上提升错误,我不想触摸提升代码: C:\boost_1_52_0 /boost/system/error_code.hpp:在全球范围内: C:\boost_1_52_0 /升压/系统/ error_code.hpp:214:36:错误:'的boost ::系统:: posix_category“定义但未使用[-
..
有些人似乎建议你使用-Wall,但是当我在一个小的测试项目,它只有一个main.cpp与一些包括,我得到5800警告大多数在标准头部或窗口标题。 / p> 这是预期的行为吗? 这里只是一些阅读乐趣: 1> c:\program files\microsoft visual studio 10.0 \vc\include\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
..
我知道这个问题提到了Boost的“静态警告”,但我会喜欢再次询问,具体来说,我如何实现 static_warning ,其操作类似于 static_assert ,但只会发出一个 我想要类似于Alexandrescu提出的在前C ++中的静态断言的建议,而不是中止编译错误。 11天,以某种方式设法打印一些有用的上下文信息作为错误的一部分。 这将是可以接受的,要求用户启用某些标准编译器警
..
我想启用 - GCC具有的所有警告。 (你会认为很容易...) 你会认为 可能会做的伎俩,但不是!仍然需要 -Wextra 。 你会认为 -Wextra 可能会做的伎俩,但不是!并非列出的所有警告此处(例如, -Wshadow )。 如何告诉GCC启用(无if, 解决方案 你不能。 GCC 4.4.0手册仅适用于该版本,但它列出了4.4.0的所有可能警告。它们并不都
..
有时,很难编写不会发出警告的C ++代码。启用警告是一个好主意。因此,通常需要禁用某些特定结构的警告,并在所有其他代码中启用它们。 我已经看到了到目前为止的两种方式。 第一个是使用 #pragma warning(push)和 #pragma warning (pop): #pragma warning(push) #pragma warning :ThatWarning)
..
我有以下的泛型方法: //从盘面 公共静态牛逼DeserializeObject<加载对象; T>(字符串文件名),其中T:类 { 的XmlSerializer XmlSerializer的=新的XmlSerializer(typeof运算(T)); 试 { 的TextReader的TextReader =新的StreamReader(文件名); VAR的结果=(T
..
有没有配置VS2008 C#编译器发出警告对于这样的代码的方式: 的Int64 X = 123456789000 ; 的Int32 Y =(Int32)已X; 解决方案 显式类型转换的整点是说, “我拿的问题,请你只做到这一点的责任。” 在你的琐碎情况下,或许会很容易让编译器计算出的值不会,适合在一个的Int32,进而产生你的警告 不过,关于这一点:
..
我得到这样的: 的#pragma警告禁用警告名单 的#pragma警告警告恢复列表 在例子中,无论禁用和恢复被使用。是否有必要恢复如果我想为一个整体文件已禁用? 就像,如果我不恢复多远它携带?难道一切之后编译禁用的警告?或者只是该文件的休息吗?抑或是忽略? 解决方案 如果你不恢复禁用是对文件的剩余部分活跃。 有趣的是这种行为的不可以中的
..
我安装了Visual Studio 2013,昨晚,我注意到,它没有显示在所有任何警告。具体而言,我希望它强调未使用的局部变量,私有方法等。有没有在Visual Studio中的某处设置,我需要启用? 解决方案 我跑进巧合的解决方案。 - 右键点击您的项目中选择“属性”。 - 转到左边的“代码分析”选项卡。 - 更改规则集“的Microsft所有规则”。 我有它在默
..
是否有可能有一些代码让编译器生成编译警告或错误? 也许与属性? ** 有了第一个答案和一些意见,我知道我的问题是不是作为一个明确的如我所料,并希望它是。我道歉。希望所有的贡献者仍然伴随着我们。结果 ** 因此,我更期待对内部DSL。 S.Th。像 [MustAssign] 公共字符串的Val {获得;设置] 解决方案 你的意思的#警告?
..
我最近发布了一个问题关于这里阅读Word文件。 该应用程序运行正常,但是我得到这样的警告消息; 方法$ b之间警告歧义$ b'Microsoft.Office.Interop.Word._Document.Close(Ref对象,引用对象,参考对象)' 和非法“Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close”。使用
..