用函数而不是宏来抑制错误警告



我想问一下,是否有一种方法可以使用自定义函数来抑制misra警告,而不必到处写\ Misra Warning Suppression(总是相同的派生)。

我经常在代码的许多地方使用throw std::runtime_error("Custom Error")。不幸的是,我必须做misra警告抑制。所以我必须在每个throw std::runtime_error("Custom Error");后面加上\ Misra Warning Suppression。在代码中是这样的:throw std::runtime_error("Custom Error"); \ Misra Warning Suppression。因为我必须在任何地方使用相同的推导,所以我考虑缩短它。

在这里,std::异常可以是任何错误类型。所以我考虑使用这样的宏:
#define EXCEPTION_MISRA( TYPE, MESSAGE ) 
throw TYPE( MESSAGE) // Use Misra Suppression

int main()
{
EXCEPTION_MISRA( std::runtime_error, "Custom Error" );
return 0;
}

不幸的是,对于我的用例来说,宏并不是真正的黄鸡蛋。是否有任何方法来做同样的使用函数?有点让你自己的xyz::throw函数,在函数中添加了\ Misra Warning Suppression?

谢谢!

我不使用MISRA,但是模板会工作吗?就像

template<class E> 
[[ noreturn ]] void exception_misra(const std::string& message)
{
throw E(message); // Use Misra Suppression
} 

像这样被调用:

exception_misra<std::runtime_error>("Custom Error");

相关内容

  • 没有找到相关文章

最新更新