在调试版本中,我想在几乎每个OpenGL调用之后检查OpenGL错误,以简化调试。由于这是一项昂贵的操作,因此我不想在发行版本中进行。现在,我正在使用类似的功能:
pub fn debug_panic_on_errors() {
if cfg!(debug_assertions) {
get_errors().unwrap();
}
}
我是否可以始终完全优化此方法,这是正确的吗?有没有更好,更适应 future 的方法?
最佳答案
在 Release模式下,该功能将扩展为if false { … }
,这对于优化起来非常简单,因此是的,您可以按原样使用它。
如果您偏执狂,可以#[cfg]
两个函数,例如
#[cfg(debug_assertions)]
pub fn debug_panic_on_errors() {
get_errors().unwrap();
}
#[cfg(not(debug_assertions))]
pub fn debug_panic_on_errors() {
}
以便在解析过程中选择结果,以确保我们不依赖优化器。但是我真的不推荐这个...