C++将函数标记为实验性的/未完全实现的



由于各种原因,我有一个函数需要部分实现,我想防止未来的用户(将来当我忘记我做过这件事时,以我的身份阅读(知道该函数不完整、有缺陷且未经测试。

选项n1仅添加注释// Warning this thing is partially implemented and will break randomly然而,这不会创建编译时警告,所以,我不是一个粉丝。

选项n2是使用[[deprecated("reason")]],它具有引发编译警告的优点,但具有误导性,该函数没有被弃用,实际上与弃用相反,它是一个WIP,也许有一天会完全实现。

有其他选择吗?

[[deprecated]]属性正是它的用途(强调矿(:

https://en.cppreference.com/w/cpp/language/attributes

[已弃用]

[不赞成("理由"(]

表示允许使用此属性声明的名称或实体,但由于某种原因不鼓励使用

您仍然可以使用该函数,您只会收到一条警告消息,您不应该依赖它的使用。

注意:MSVC违反了标准,并发出编译器错误(由于SDL标志默认打开(而不是警告。

标准C++中唯一适用于此的是[[deprecated("message")]]属性。

GNU对于warning消息有一个非标准函数属性:

警告("消息"(
如果在函数声明中使用此属性,并且对此类函数的调用未通过死代码消除或其他优化消除,则将诊断出包含消息的警告。这对于编译时检查非常有用,尤其是与__builtin_constant_p和内联函数一起使用。虽然可以在.gnu.warning*部分中用消息定义函数,但当使用此属性时,即使存在内联函数或不发出调试信息,问题也会更早诊断出来,并带有调用的确切位置。

相关内容

  • 没有找到相关文章

最新更新