Открытие .inl файла разрывает IntelliSense по всему миру - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю с 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 или как бы предотвратить эту проблему?

...