在调试版本中,我想在几乎所有OpenGL调用之后检查OpenGL错误以简化调试。由于这是一项代价高昂的操作,我不想在发布版本中执行此操作。现在我正在使用以下功能:
pub fn debug_panic_on_errors() {
if cfg!(debug_assertions) {
get_errors().unwrap();
}
}
我认为这种方法总会被完全优化后我是否正确?是否有更好的,更具前瞻性的方式?
答案 0 :(得分:2)
在发布模式下,该功能将扩展为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() {
}
以便在解析期间选择结果,以确保我们不依赖于优化器。但我不是真的推荐这个......