嗨,我想改善我的数学库,

当我计算某物的长度时

assert( !equal(len,0.0));
const f32 invsqrt = 1.0/sqrt(len);
X*= invsqrt;
Y*= invsqrt;
Z*= invsqrt;


这段代码很好,如果我做错了除以零,代码就会中断

“运行时已请求在.. Vector.h第88行中断应用程序”

很好,但是我想做得更好,我想表明错误在哪里。

因此,我不想显示“ vector.h”和第88行,而是要显示“ main.cpp”“第15行”(如果在main中的第15行调用了getLength函数)。

Vector只是标题,所以我认为实现这一点是可能的(只是一种感觉)..但是如何呢?

提前致谢。希望您能看到这样做的用处。

最佳答案

那就是代码所在的地方,因此它将被破坏。

我认为您的意思是查看调用堆栈。
在Visual Studio中,它位于:调试-> Windows->调用堆栈。

调用堆栈可以向您展示如何到达该行代码(在工作流程中调用了哪个函数)

关于c++ - 委托(delegate)断言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14754084/

10-11 17:08