我有一个c++库,其中包含一个名为ExampleFunction()
的函数。此功能已记录在案,并且已经在使用中。不幸的是,库的样式要求将此函数称为exampleFunction()
{首字母为小写}。
为了向后兼容,我需要保留旧名称,但要将新名称添加为公共(public)功能。最有效的方法是什么?
我假设添加以下内容的定义:
void exampleFunction() {ExampleFunction();}
不是解决此问题的最佳方法,而是在寻找选择。 最佳答案
您可以将实际上具有实现的现有函数重命名为exampleFunction()
,因为它应该是这样。然后,旧名称的用户1)仍具有正常工作的代码,2)被告知要使用一个新的函数名称,您可以执行以下操作:
[[deprecated("Use exampleFunction() instead")]]
inline void ExampleFunction() { exampleFunction(); }
这使用C++ 14及更高版本中的 deprecated
attribute。包装函数的性能影响是不存在的(如果确实由编译器内联)或可以忽略。