extern "C++" 到底做了什么?

问题描述 投票:0回答:0

我正在做一个 C++ 项目。在我的

a.h
文件中的某处,我有以下代码行:

#include "object.hpp"

object.hpp
还包含许多标头,它们充满了现代 C++17 代码。我的
a.h
包含在我代码外某处的
extern "C"
块中。所以,我收到编译错误,如 -
"Templates require C++ linkage"
.

所以,我试着用

extern "C++"
包含我的标题,但是这次我得到了
Use of undeclared identifier
的编译错误。

extern "C++" {
    #include "object.hpp"
}

我真的不能分享标题,因为它们又大又复杂。此外,即使我使用具有完整

C++
代码(没有
C
代码和
extern "C"
块)的不同项目,在extern“C++”中包围我的标题也会导致相同的错误。

我以为

extern "C++"
只是编译C++链接的代码。我错过了什么吗?

c++ c++17 extern-c
© www.soinside.com 2019 - 2024. All rights reserved.