我正在使用Visual Studio 2017,最新版本(昨天才更新)。
我正在使用DirectXMath,该文件在某些方面使用.inl
文件。我了解为什么IntelliSense遇到.inl
文件有问题,但是就我而言,Visual Studio破坏了我文件的IntelliSense。
一个简单的代码片段,可以在上面重现该问题:
#include <DirectXMath.h>
#include <DirectXCollision.h>
void f() {
DirectX::XMMATRIX projLH;
DirectX::XMMATRIX viewLH;
DirectX::BoundingFrustum fr{ projLH };
fr.Transform(fr, DirectX::XMMatrixInverse(nullptr, viewLH));
}
一切正常,VS了解所有类型和功能。现在,当我右键单击类型或函数并单击Show Definition
时,Visual Studio将向我显示覆盖中的源代码,覆盖中的源代码可能在标头文件中,也可能在.inl
文件中。 有时(三到四次),当我关闭此叠加层后,Visual Studio会忘记所有类型。 XMMATRIX
,projLH
,viewLH
,fr
和XMMatrixInverse
的下方都有红色的波浪线,并且将namespace DirectX has no member 'XMMATRIX'
,{{1} } 等等。 它仍然可以编译。
这很烦人,因为每次我都必须重新启动Visual Studio才能解决此问题。关闭并重新打开文件无济于事。下次我想查看一个声明,而该声明恰好位于; expected
文件中时,它将再次中断。 为什么打开.inl
文件后,IntelliSense会为我的我的代码中断吗?我可以以某种方式全局禁用.inl
文件的IntelliSense还是如何防止此问题?