Я работаю с 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'
, ; expected
и так далее. Он все еще компилируется, хотя .
Это довольно раздражает, так как мне приходится каждый раз перезапускать Visual Studio, чтобы это исправить.Закрытие и повторное открытие файла не помогает.В следующий раз, когда я захочу взглянуть на объявление и объявление окажется в файле .inl
, оно снова сломается. Почему прерывает IntelliSense для моего кода после открытия файла .inl
?Могу ли я как-то глобально отключить IntelliSense для файлов .inl
или как бы предотвратить эту проблему?