我见过 std::string
在 .c
文件中使用。 std 是一个 c++ namespace , namespace 是在 c++ 中引入的。为什么会这样?它不应该抛出错误吗?
最佳答案
是的,如果编译为 C 代码,将导致大量编译器错误。如果它被编译为 C++,那么它将编译正常。例如,GCC 有 -x
选项来选择编译语言,所以你可以将 .c
编译为 C++,如果你想用 -x c++
。同样,Microsoft Visual C++ 编译器有选项/Tc
和/Tp
分别选择C 和C++ 的源语言。
我建议您修复构建系统,使其不会将 -x c++
或 /Tp
标志传递给不以典型 C++ 源文件扩展名结尾的文件 ( .cc
、.cpp
、.cxx
、c++
和 .C
,尽管后三个非常罕见)。
关于c++ - .c 文件中的 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021381/