gpt4 book ai didi

c++ - 警告控制到达非空函数 c++ 的末尾

转载 作者:行者123 更新时间:2023-11-30 01:29:01 25 4
gpt4 key购买 nike

我在 C++ 代码中有以下函数(这只是一个例子)

Object& XYZ::getObject(InObj obj) {
try{
return obj.getObj();
}
DC_THROW_ERROR(ExceptionObj, "Object Not Found"); // Macro which throws an exception
}

当我编译上面的代码时,我收到警告(即控制到达非空函数的末尾)。宏在编译前被展开。所以编译器知道,如果它不返回某些东西,它就会抛出异常。如果是这样,为什么编译器会发出警告?这些类型的功能在我的项目中无处不在。为了摆脱这些警告,我在宏之后写在下面一行。

return *(static_cast<Object*>(0)); 

这是修复它的正确方法吗?我知道它有点狡猾。我不能更改代码,因为我必须更改大约 1000 个函数。那么谁能告诉我是否有更好的修复方法??

谢谢

最佳答案

听编译器。摆脱(迄今为止未公开的)宏。或者只是修复它,但最好摆脱它——你陷入了使 C++ 看起来像语言 X 的事情,这是不好的。

干杯,

关于c++ - 警告控制到达非空函数 c++ 的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6641735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com