我在使用原生 C++ 的 Visual Studio 2008 中工作。
一位同事写了一个库,他将其中一个类命名为interface
。这是一个构造函数:
template <typename DtedInterface>
interface<DtedInterface>::interface (
std::string const& tleFile,
std::string const& dtedDir,
dted::DtedLevel const& dtedLevel,
double sw_latitude,
double sw_longitude,
unsigned int rows,
unsigned int columns )
: m_impl ( new interface_impl<DtedInterface> ( theFile, dtedDir, dtedLevel, sw_latitude, sw_longitude, rows, columns ) )
{}
令我担心的是 Visual Studio 2008 将 interface
一词突出显示为关键字; interface
是 C++/CLI 中的关键字,但不是 C++。这看起来不像是有效的 C++/CLI,但对于 native C++ 来说没问题。
看起来它们编译得很好,但我如何确保 Visual Studio 将其解释为 C++ 而不是 C++/CLI?在某些 级别,VS 似乎将其视为 C++/CLI。只是关键字高亮设置吗?
最佳答案
Visual Studio IDE 和 Visual C++ 编译器是两个独立的实体。具体来说,它们是作为独立进程运行的两个独立的可执行文件(IDE 的 devenv.exe
和编译器的 cl.exe
)。 IDE 只是生成 cl.exe
进程来执行实际的编译。
IDE 在某处有一个关键字列表,它只是告诉文本编辑器要突出显示哪些词。它不是 super 复杂;它不一定是。编译器有最终决定权,而不是语法高亮器(或 Intellisense)。
只要/clr
switch未传递给 cl.exe
进程,编译器会将代码编译为 native C++(这是默认设置)。 IDE 只需输入源代码的文件路径,编译器就会将其作为命令行参数切换到 cl.exe
进程。语法突出显示与编译器如何解释代码无关。
关于c++ - 确保 VS 2008 将我的项目视为 C++ 而不是 C++/CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6336830/