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.它只是一个突出显示设置的关键字吗?
Visual Studio IDE和Visual C++编译器是两个独立的实体.具体来说,它们是两个独立的可执行文件(devenv.exe
对于IDE和cl.exe
编译器),它们作为单独的进程运行.IDE只会生成cl.exe
执行实际编译的过程.
IDE有一个关键字列表,它只是告诉文本编辑器要突出显示哪些单词.它不是超级复杂; 它不一定是.编译器有最终决定权,而不是语法高亮显示器(或者就此而言的智能感知).
只要/clr
交换机没有传递给cl.exe
进程,编译器就会将代码编译为本机C++(这是默认设置).IDE只是输入源代码的文件路径,编译器切换为cl.exe
进程的命令行参数.语法高亮与编译器如何解释代码无关.