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

Joh*_*ohn 2 c++ text-editor keyword visual-studio-2008 visual-c++

我正在使用原生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 ) )
  {}
Run Code Online (Sandbox Code Playgroud)

我关心的是Visual Studio 2008将该单词突出显示interface为关键字; interface是C++/CLI中的关键字,但不是C++.这看起来不像是有效的C++/CLI,但它适用于本机C++.

看起来它们编译得很好,但是如何确保Visual Studio将其解释为C++而不是C++/CLI?在某种程度上,VS似乎将其视为C++/CLI.它只是一个突出显示设置的关键字吗?

In *_*ico 7

Visual Studio IDE和Visual C++编译器是两个独立的实体.具体来说,它们是两个独立的可执行文件(devenv.exe对于IDE和cl.exe编译器),它们作为单独的进程运行.IDE只会生成cl.exe执行实际编译的过程.

IDE有一个关键字列表,它只是告诉文本编辑器要突出显示哪些单词.它不是超级复杂; 它不一定是.编译器有最终决定权,而不是语法高亮显示器(或者就此而言的智能感知).

只要/clr交换机没有传递给cl.exe进程,编译器就会将代码编译为本机C++(这是默认设置).IDE只是输入源代码的文件路径,编译器切换为cl.exe进程的命令行参数.语法高亮与编译器如何解释代码无关.