有哪些策略可以在函数返回类型需要更改时使其废弃?例如,我有以下代码:
BadObject foo(int); // Old function: BadObject is being removed.
Object foo(int); // New function.
Object
和BadObject
在内部非常不同,交换它们的返回类型将会破坏当前使用我的库的用户的代码。我希望避免这种情况。
我可以将BadObject foo(int)
标记为已弃用,并给用户时间来更改受影响的代码。
然而,我无法根据返回类型重载foo
。 foo
的命名非常好,不需要添加额外的参数。如何在保留旧版本的同时向我的库中添加新函数,至少要有一段时间?
如何在不破坏太多相关代码的情况下弃用旧函数,同时提供用户迁移到新版本的时间?理想情况下,我想保留当前的函数名称和参数列表,因为它现在已经命名得很好了。这似乎应该是一个相当常见的问题:有什么好的解决方法?
inline namespace v0
中声明foo
,当需要更改时,在inline namespace v1
中声明foo'
(并从v0
中删除inline
)。 - mythagel