我有一个c++库,其中包含一个名为ExampleFunction()的函数。此功能已记录在案,并且已经在使用中。不幸的是,库的样式要求将此函数称为exampleFunction() {首字母为小写}。
为了向后兼容,我需要保留旧名称,但要将新名称添加为公共(public)功能。最有效的方法是什么?
我假设添加以下内容的定义:

void exampleFunction() {ExampleFunction();}
不是解决此问题的最佳方法,而是在寻找选择。

最佳答案

您可以将实际上具有实现的现有函数重命名为exampleFunction(),因为它应该是这样。然后,旧名称的用户1)仍具有正常工作的代码,2)被告知要使用一个新的函数名称,您可以执行以下操作:

[[deprecated("Use exampleFunction() instead")]]
inline void ExampleFunction() { exampleFunction(); }
这使用C++ 14及更高版本中的 deprecated attribute。包装函数的性能影响是不存在的(如果确实由编译器内联)或可以忽略。

09-08 05:30