提问人:tnix 提问时间:3/25/2023 最后编辑:tnix 更新时间:3/26/2023 访问量:44
引发异常触发的 C4913 警告
C4913 warning triggered by throwing an exception
问:
我有一些这样的代码:
#include <stdexcept>
namespace some_space {
struct some_class{
};
some_class operator,(some_class a, float ){
return a;
}
int a(){
// somewhere in this function
throw std::exception{};
}
}
使用 MSVC 编译,我收到此警告:/W4
<source>(13): warning C4913: user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used
我想知道为什么第 13 行会导致此警告。有人对此有解释吗?throw std::exception{};
此警告的文档仅列出了使用逗号运算符的示例。但是,在这种情况下,我没有看到运算符的使用。
这是显示此警告的 godbolt 的链接。我的想法是,也许宏会导致问题,但预处理器输出没有显示任何替换。
抛出内置类型(如或可转换的类)不会引起警告。
抛出任何其他类都会触发警告。int
some_class
答: 暂无答案
评论
operator,(int, float)
operator,(int, float