vector.push_back () intellisense error

0

У меня есть следующая структура

struct foo{
    vector<foo*> cntns;
};

и следующая функция

void createLink(foo *i1, foo *i2){
    i1->cntns.push_back(i2);
    i2->cntns.push_back(i1);
}

но я получаю ошибку

2   IntelliSense: no instance of overloaded function "std::vector<_Ty, _Alloc>::push_back [with _Ty=foo*, _Alloc=std::allocator<foo*>]" matches the argument list
        argument types are: (foo*)
        object type is: std::vector<foo*, std::allocator<foo*>>

Код, кажется, компилируется хорошо, кто-нибудь знает, почему это происходит?

Теги:
vector
visual-studio-2012

1 ответ

1

Не уверен, почему это ошибка Intellisense, так как код будет компилироваться и работать нормально.

Однако, если вы действительно хотите избавиться от ошибок Intellisense, я обнаружил, что его функция-член избавляется от жалоб:

struct foo
{
    vector<foo *> cntns;

    void createLink(foo * i2)
    {
        this->cntns.push_back(i2);
        i2->cntns.push_back(this);
    }
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню