c++ - 确保 VS 2008 将我的项目视为 C++ 而不是 C++/CLI

标签 c++ visual-c++ visual-studio-2008 text-editor keyword

我在使用原生 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/

相关文章:

visual-c++ - 有没有办法在没有 Visual Studio 的情况下查看调试输出?

c++ - 在 Visual Studio 2017 中通过扩展每个参数包调用基类成员失败

c++ - Visual Studio 链接器找不到 libboost_system

c# - 触摸屏编程问题

c++ - 未初始化的局部变量是最快的随机数生成器吗?

c++ - Qt-我在哪里可以找到我可以使用的字体列表?

c++ - 异常 : Deletion of node in Binary Search Tree

c++ - C++矩阵运算符+

c++ - 如何针对发布构建的库 (MSVCRT.lib) 构建调试 .exe (MSVCRTD.lib)?

c# - 检查两个键是否匹配无法正常工作