В следующем коде:возвращение Его & от вектора
class SomeClass {
vector<int> i;
vector<bool> b;
public:
int& geti() {return i[0];}
bool& getb() {return b[0];}
};
Если закомментировать getb()
, код компилируется нормально. По-видимому, нет проблем с возвратом ссылки на int
, который хранится в векторе, но вы не можете сделать это с помощью bool
.
Почему это?
Принимая во внимание существующие ответы, вы все равно можете «спасти» свой код, используя «std :: vector :: reference» в качестве возвращаемого типа для своей функции вместо явного 'bool &'. 'std :: vector :: reference' будет тот прокси-класс, который действует как обобщенная ссылка для упакованного' std :: vector '. –
AnT