У меня проблема при разыменовании итератора std::list<std::unique_ptr<MyClass>>
. Вот моя ситуация: в headerFile.h у меня
class MyClass{
public:
bool variable = false;
private:
};
, затем в headerFile2.h
#include "headerFile.h"
#include <memory>
#include <list>
class OtherClass{
public:
private:
std::list<std::unique_ptr<MyClass>> MyList;
void MyFuction();
};
и, наконец, в headerFile2. cpp Я пытаюсь использовать MyClass: : переменная вроде этой:
#include "headerFile2.h"
void OtherClass::MyFunction(){
for(auto it = MyList.begin(); it != MyList.end(); it++){
*it -> variable = true;
}
}
Она не компилируется, и я не знаю, в чем моя ошибка. Сообщение об ошибке: 'struct std::_List_iterator<std::unique_ptr<MyClass> >' has no member named 'variable'
Я тоже пробовал делать **it.variable = true;
.
Буду признателен за любой совет.