使用 extern "C" 的潜在缺点是什么?

What are potential disadvantages of using extern "C"?

我已阅读

但是,有一个问题我还没有找到答案:使用 extern "C"(例如,在尽可能多的函数上)是否有(潜在的,未来的)缺点?

更具体地说:向接口仅使用 C 功能的函数添加 extern "C" 是否有任何缺点?换句话说,那些不使用@k-five 的回答中列出的功能的人?

缺点是您只能使用接口中的功能 extern "C" 函数,这些函数也可用于 C 函数。

这意味着:
1. 函数参数不能使用默认值,
2.不能使用引用参数,
3.你不能按值传递C++ 类(包括智能指针),
4. 你不能传递 enum class 个参数,
5. 你不能传递 bool 而不把它转换成 int,
6. 你不能重载这样的函数,可能还有更多我现在想不起来的。