«Нестандартный синтаксис; использовать ‘&’ для создания указателя на элемент “ошибка vs2015

У меня есть эта функция:

std::string Room::getUsersAsString(std::vector usersList, User * excludeUser) { std::string usersNames = " "; for (int i = 0; i getUsername() != excludeUser->getUsername) { usersNames.append(usersList[i]->getUsername); usersNames.append(" "); } } return usersNames; } 

Всякий раз, когда я пытаюсь запустить программу, я получаю следующую ошибку:

 non-standard syntax; use '&' to create a pointer to member 

Не могу понять, как это исправить.

Если вы используете

 if (usersList[i]->getUsername() != excludeUser->getUsername) 

вместо

 if (usersList[i]->getUsername() != excludeUser->getUsername()) 

ваш компилятор подумает, что вы хотите использовать указатель на функцию вместо самого метода, и если бы вы захотели использовать указатель на функцию, вам все равно нужно было бы получить его адрес (используя &).

Поэтому убедитесь, что вы не забыли свой () после вызова функции!

Вам не хватает круглых скобок вызова функций в этих строках:

 if (usersList[i]->getUsername() != excludeUser->getUsername) { 

а также

 usersNames.append(usersList[i]->getUsername); 

Попробуйте изменить их на:

 if (usersList[i]->getUsername() != excludeUser->getUsername()) { 

а также

 usersNames.append(usersList[i]->getUsername());