我见过std::string
用在一个.c
文件中。std 是一个 c++ 命名空间,命名空间是在 c++ 中引入的。为什么呢?它不应该抛出错误吗?
问问题
1597 次
2 回答
9
是的,如果它被编译为 C 代码,它会导致许多编译器错误。如果它被编译为 C++,那么它会编译得很好。例如,GCC-x
可以选择编译为的语言,因此您可以根据需要将 a 编译.c
为 C++ -x c++
。同样,Microsoft Visual C++ 编译器具有分别选择源语言 C 和 C++/Tc
的选项。/Tp
我建议您修复您的构建系统,以便它不会将-x c++
or/Tp
标志传递给不以典型 C++ 源文件扩展名(.cc
、.cpp
、.cxx
、c++
和结尾的文件.C
,尽管最后三个非常罕见)。
于 2012-10-22T23:23:02.657 回答
0
文件的扩展名只是为了帮助您作为读者。只要您使用 c++ 编译器,编译器就不会在意。
于 2012-10-22T23:23:43.820 回答