【发布时间】:2020-08-04 00:35:51
【问题描述】:
我有一个功能,由于各种原因,我需要部分实现,我想防止未来的用户(当我忘记我这样做时,以后读我)知道该功能不完整,有问题并且未经测试。
选项 n1 只是添加评论// Warning this thing is partially implemented and will break randomly
然而,这不会产生编译时警告,所以我不是粉丝。
选项 n2 是使用[[deprecated("reason")]],它的优点是会引发编译警告,但它具有误导性,该功能并未被弃用,它实际上与弃用相反,它是一个 WIP,也许有一天会完全实现。
有其他选择吗?
【问题讨论】:
-
其实
[[deprecated("this function is buggy, and will need fixing")]]看起来并不可怕。甚至[[deprecated("not really, just incomplete :)")]] -
我知道这是一个语言问题,但作为一般的软件实践,提交一半工作代码是个坏主意。我只会正确实现一些基本功能并记录限制。
-
这是研究代码,通常不可能没有一半工作的代码被你搁置一旁。你不想失去你在原型中投入的所有工作,但你也不想继续花费宝贵的时间在难以实现的算法上,如果你认为你已经找到了新的线索。
-
如果是研究代码,听起来你真的很想使用 GitHub 之类的代码存储库,而只是在可能有效也可能无效的实验代码上进行分支。如果有效,则合并它,如果无效,则停止该分支上的工作,以保留代码或删除该分支。
-
这会产生一个问题,随着时间的推移,您重构代码合并可能会成为一场噩梦。如果原型保留在代码中,并且我更改了破坏当前功能的依赖项,我的测试将捕获它并且我可以随时修复它,这比在我需要返回时立即修复所有内容要简单得多它
标签: c++ compilation compiler-warnings deprecation-warning