C++ 编译时未实现检查

C++ compile-time un-implemented check

我们有几个 C++ 函数将在我们项目的第 2 阶段实现,它们是 public 接口或它们各自的 classes 和模块的一部分。因为它们是 public 接口的一部分,我们认为它们应该存在,至少在头文件中,在第 1 阶段,以便我们在实现 classes 的其余部分时仍在考虑它们.但是,由于它们尚未实现,我们不希望有人调用它们。我们希望在编译时进行此检查,以确保正确性。

我的愿望是:

我正在考虑三个选项:

有没有更好的方法?如果不是,是否有理由更喜欢模板或评论选项而不是已弃用的选项?

替代方案:

你可以只声明它们而不定义,所以你会得到 link 错误。
然后,您可以提供一个定义为空的库 not_yet_implemented,以允许过早使用这些函数。

将您的方法标记为已删除:= delete,最终将其包装在宏中

#define NOT_YET_IMPLEMENTED = delete