问题标签 [compiler-warnings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# 无法加载文件或程序集...系统找不到指定的文件
编写一个例程的 WinForms 应用程序,该应用程序引用了一些我自己编写的自定义库。我正在构建一个依赖于另一个库的特定库,当我这样做时,我收到以下警告消息:
“无法加载文件或程序集 'RHLib' 版本 1.0.0.0、Culture=neutral、PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件”
应用程序功能,没有错误消息,但我是喜欢完全干净编译的人之一 - 没有错误,没有警告。我无法弄清楚这一点。
有问题的库引用了“缺失”库,“缺失”库被编译并在 VS 完成编译时位于 Debug 目录中,构建顺序将“缺失”库作为第一个构建的项目,“缺失”库" 库没有依赖关系——它是一个小型库,旨在让我摆脱循环装配问题。
有任何想法吗?
iphone - Xcode - 为什么这没有显示警告?
我有一个我在今年早些时候写的类,在 3.0 之前,它实现了 UIImagePickerControllerDelegate 协议。在其中,我实现了 imagePickerController:didFinishPickingImage:editingInfo: 方法,该方法在 3.0 SDK 中已弃用。
问题是,我只是通过浏览文档而不是编译器警告才注意到这一点。我看到了其他弃用警告(对于 TableViewCell.text 之类的东西),但不是这个。是否有我需要启用的设置或某些东西,因为我现在想知道是否还有其他我遗漏的弃用
objective-c - 警告:从不同的 Objective-C 类型传递参数
我目前正在尝试使用 GCC4.2(原始:4.0)编译 OCMock 并开始收到以下警告:
警告:从不同的 Objective-C 类型传递 'partialMockForObject:' 的参数 1
调用方法是:
被调用的方法是:
使用强制转换为 id 为参数添加前缀可以解决问题。我认为所有对象都是 NSObject 的子类,尽管强制转换是隐式的(超类替换:超类总是可以被它的任何子类替换)
c++ - C++:用户定义类型的转换
如何获得与内置的用户定义类型相同的转换处理,例如:
现在说我有自己的 Int 和 Float 类,我该如何获得相同的错误和警告?
我知道创建重载的强制转换运算符和使用构造函数,但是我不知道如何使它正确地用于隐式和显式强制转换,例如考虑。如果我没有在这些方法中添加显式强制转换,那么我会在编译时收到警告,但在调用时不会收到警告,如果我这样做了,那么我不会在类代码中收到错误,但我仍然没有得到使用时发出警告。
我猜有某种方法可以将强制转换运算符标记为显式,以便在它尝试隐式强制转换时生成警告,而不是显式(C-Style 或 static_cast)强制转换)
编辑:好的,我想我可以在这样的情况下得到它,在这种情况下,所有有问题的类型都是完全已知的,但是当一个或两个都是模板并且两种类型都映射到内置类型时呢?
从say Vector2 到 Vector2 的隐式转换按预期工作,但是从say Vector2 到 Vector2 的转换总是会导致(2,一个用于 x,一个用于 y)警告,即使使用了显式 C 样式或 static_cast 也是如此。我想保留隐式转换的警告,而不是显式转换的警告。
我知道我可以解决这个问题,创建一个特殊的 T vector_cast(T2) 类型方法,该方法在内部对每个元素使用显式强制转换,但我宁愿能够使用 C-Style 和 static_casts
compiler-construction - Scala:比较新鲜的对象
我正在浏览 scala 测试,但我不明白为什么当您比较“两个新对象”时编译器会产生警告。
这是测试的输出: http: //lampsvn.epfl.ch/trac/scala/browser/scala/trunk/test/files/neg/checksensible.check
例子:
如果我编写一个实现==
方法的类,它也会产生这个警告:
编辑:谢谢 oxbow_lakes,我必须重写 equals 方法,而不是 ==
c++ - 如何摆脱 VS2008 中 boost::flyweight 产生的 C4800 警告
在打开 MFC 的 VS2008 中编译以下代码时,我收到警告。提升版本 1.39
上面代码的最后一行产生了一个警告
d:\work\sourcecode\boost1390\boost\functional\hash\extensions.hpp(72) : 警告 C4800: 'const wchar_t *'
: 强制值为 bool 'true' 或 'false' (性能警告)
d:\work\sourcecode\boost1390\ boost\functional\hash\extensions.hpp(71) :size_t boost::hash<T>::operator ()(const T &) const
使用
[
T=ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t>>
]
d:\work\sourcecode\boost1390\boost\multi_index\hashedindex.hpp(1159) 编译类模板成员函数时:参见类模板实例化的参考 'boost ::hash<T>' 使用
[
T=ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t>>
] 编译
通过散列工厂、MPL 等,此警告一直持续。
为什么会出现警告,如何更正代码以不产生警告?
编辑:
要修复,添加下面的 hash_value 实现
java - 如何抑制有关已弃用 api 的 javac 警告?
当我编译时,javac 输出:
我想压制这个警告。尝试 -Xlint:none 似乎没有帮助。
java - Java Class.cast() 与强制转换运算符
在我的 C++ 时代,我被教导 C 风格的强制转换运算符的弊端,起初我很高兴地发现在 Java 5java.lang.Class
中已经获得了一种cast
方法。
我认为我们终于有了一种面向对象的方式来处理演员阵容。
事实证明Class.cast
与static_cast
C++ 中的不同。它更像reinterpret_cast
。它不会在预期的地方产生编译错误,而是会推迟到运行时。这是一个简单的测试用例来演示不同的行为。
所以,这些是我的问题。
- 应该
Class.cast()
被放逐到泛型领域吗?它有很多合法用途。 - 编译器是否应该在使用时产生编译错误,
Class.cast()
并且可以在编译时确定非法条件? - Java 是否应该提供转换运算符作为类似于 C++ 的语言结构?
visual-studio - Visual Studio 2008 中的自定义编译器警告
自定义编译器警告和
C#:如果在源代码中使用某些方法
没有帮助,则在 Visual Studio 中创建自定义警告,因为它们处理的是作者控制的代码。
我们在我们的软件中使用了第 3 方的 UI 控件套件(DevExpress),我想在有人使用MessageBox.Show("blah");
而不是XtraMessageBox.Show("blah");
有没有办法做到这一点?
c++ - 深度为 3 或更多的嵌套向量的编译器警告
我正在尝试使用一个使用深度为 3 的嵌套向量的类成员:
矢量<矢量<矢量>>类变量_;
但是,当我尝试执行诸如 classVariable_.clear() 之类的简单操作时,我会在整个代码中收到编译器警告:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_vector.h:在成员函数`std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc> ::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = std::vector >, _Alloc = std::allocator >>]': /usr/lib/gcc/i686-pc-cygwin /3.4.4/include/c++/bits/stl_vector.h:715:警告:“__result”可能在此函数/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/中未初始化使用bits/stl_uninitialized.h:82: 警告: '__cur' 可能在这个函数中使用未初始化/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_uninitialized.h:82: 警告: '__cur' 可能在此函数中未初始化使用
奇怪的是,这适用于深度为 2 的嵌套向量,但不适用于深度为 3 或更多的嵌套向量。这与 stl 库中缺少默认运算符/构造函数有关吗?
有谁知道一个干净的解决方案?我正在使用 cygwin 编译它,但这不应该对此产生影响。
谢谢你。