我正在尝试用 C++ 开发一个动态库,以便由用 IDL(交互式数据语言)编写的现有程序调用。我知道我需要使用 extern "C" 来禁用名称修饰,以便 IDL 可以调用它需要的函数(调用机制的其余部分非常简单)。
但是,我总是对使用我不完全理解的语言特性犹豫不决,所以我的问题是:如果有的话,我会因为恢复到 C 链接而失去 C++ 的哪些特性?我认为命名空间是显而易见的,但它是否也完全禁用了 C++ 的所有其他不错的功能?我还能使用 C++ STL 以及我所依赖的所有各种语言特性(尤其是 C++11 特性)吗?还是我基本上被困在 C 语言中?