Ошибка Intellisense при передаче вектора по константной ссылке (но при сборке проекта) - PullRequest
0 голосов
/ 16 февраля 2020

При попытке передать вектор по константной ссылке я получаю следующую ошибку intellisense (проект строится успешно):

no instance of constructor "ObjOne::ObjOne" matches the argument list
argument types are: (std::vector<int, std::allocator<int>>) 

enter image description here

Я прокомментировал приведенный ниже минимальный воспроизводимый пример, где происходит ошибка. Есть ли известный способ решения таких проблем в visual studio 2017?

#include <vector>
#include <string>
#include <optional>

class ObjOne
{
public:
    ObjOne(const std::vector<int>& p1) {}
};

class ObjTwo
{
private:
    std::vector<int> testVec = { 1,2,3,4,5 };
    std::optional<ObjOne> optObjOne;
public:
    ObjTwo() {}
    void makeObjOne() 
    {
        this->optObjOne = ObjOne(this->testVec); // Issue arises here
    }
};


int main()
{
    auto myObjTwo = ObjTwo();
    myObjTwo.makeObjOne();

    return 0;
}

1 Ответ

1 голос
/ 20 февраля 2020

Ошибка Intellisense при передаче вектора по константной ссылке (но сборки проекта)

Я проверил ваш образец в моем последнем VS2017, и Intellisense работает хорошо, как и ожидалось. Поэтому мне интересно, что есть некоторые проблемы с вашей средой VS и Intellisnese.

Мое окружение - ОС: win10 1903 VS: VS2017 Community 19.9.20

Вы можете попробовать мои предложения для устранения проблемы:

В качестве предложения , если ваш VS2017 не самая последняя версия, вы можете обновить его до последней версии, которая может иметь более новое исправление.

1) закрыть экземпляр VS, удалите скрытую папку .vs, папку bin и папку obj

2) очистите кэш компонента VS в C: \ Users \ user \ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_xxxxx \ ComponentModelCache

3) откройте ваш проект в VS и щелкните правой кнопкой мыши ваш проект -> Properties -> C/C++ -> Language -> установить C++ Language Standard на ISO C++ 17 Standard(/std:c++17)

Кроме того , если это не работает, попробуйте выполнить ремонт в VS Installer в если Intellisense не работает.

Надеюсь, это поможет вам.

...