首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用函数而不是宏来抑制misra警告

用函数而不是宏来抑制misra警告
EN

Stack Overflow用户
提问于 2022-04-20 19:34:14
回答 1查看 130关注 0票数 0

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

我经常在代码中的许多地方使用throw std::runtime_error("Custom Error")。不幸的是,我必须做米斯拉警告的压制。因此,我必须在每个\\ Misra Warning Suppression之后添加throw std::runtime_error("Custom Error");。在代码中,它是这样的:throw std::runtime_error("Custom Error"); \\ Misra Warning Suppression。因为我必须用同样的派生方式在任何地方使用它,所以我想缩短它。

这里,std::异常可以是任何错误类型。所以我考虑使用这样的宏:

代码语言:javascript
复制
#define EXCEPTION_MISRA( TYPE, MESSAGE ) \
  throw TYPE( MESSAGE) // Use Misra Suppression


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

不幸的是,对于我的用例来说,宏并不是真正的黄色。有任何方法来做同样的使用函数吗?创建您自己的xyz::抛出函数,在函数中添加了\\ Misra Warning Suppression

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-20 20:11:34

我不使用MISRA,但是模板有用吗?有点像

代码语言:javascript
复制
template<class E> 
[[ noreturn ]] void exception_misra(const std::string& message)
{
    throw E(message); // Use Misra Suppression
} 

这样的称呼:

代码语言:javascript
复制
exception_misra<std::runtime_error>("Custom Error");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71945283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档