std :: string在.c文件中

我在.c文件中看到了std::string 。 std是一个c ++命名空间,命名空间是在c ++中引入的。 为什么? 它不应该抛出一个错误?


是的,如果它编译为C代码,会导致大量编译器错误。 如果它被编译为C ++,那么它会很好地编译。 例如,GCC具有-x选项来选择要编译的语言,因此如果您想使用-x c++则可以将.c编译为C -x c++ 。 同样,Microsoft Visual C ++编译器有选项/Tc/Tp分别选择C和C ++的源语言。

我建议您修复您的构建系统,以便它不会将-x c++/Tp标志传递给不以典型的C ++源文件扩展名( .cc.cpp.cxxc++.C结尾的文件,尽管最后三个是非常罕见的)。


文件的扩展只是为了帮助你成为读者。 只要您使用c ++编译器,编译器就不会在意。

链接地址: http://www.djcxy.com/p/86309.html

上一篇: std::string in a .c file

下一篇: Does it matter which file extension I use for my C++ programs?