【发布时间】:2019-05-28 10:51:45
【问题描述】:
阅读 this blog post 及其 cmets,我注意到它作为示例提供了将特定函数参数标记为已弃用的可能性,如(示例取自帖子):
// Deprecate a function parameter
int triple([[deprecated]] int x);
现在我想知道,这样的功能有什么好的用例?在那篇文章的 cmets 中或我搜索过的任何其他地方似乎都没有任何线索。
编辑:
要查看它的实际效果,有一个可编译的示例on goldbolt
【问题讨论】:
-
嗯。我在考虑默认参数,但 gcc 不会对
void f([[deprecated]] int n = 0); void g() { f(); f(2); }中的任何一个语句发出警告。它只在函数体内发出警告。 -
使用gcc trunk,如你所见on goldbolt,在函数内部使用参数时发出警告,而不是在调用时发出警告,这就是为什么它是令人费解的。
-
你为什么假设有一个用例?也许这可能只是因为没有例外禁止它。
-
@eerorika 我不是假设有一个用例。这个功能完全有可能只是碰巧在没有任何计划的情况下可用,并且保持原样无害,但我很想知道是否真的有一个用例。
标签: c++ c++14 deprecated deprecation-warning