我想问一下,是否有一种方法可以使用自定义函数来抑制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
。因为我必须在任何地方使用相同的推导,所以我考虑缩短它。
#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");