1. ホーム
  2. c++

[解決済み] Visual Studio 2015で "non-standard syntax; use '&' to create pointer to member" エラーが発生する。

2022-02-14 12:12:19

質問内容

このような関数があります。

std::string Room::getUsersAsString(std::vector<User*> usersList, User * excludeUser)
{
    std::string usersNames = " ";

    for (int i = 0; i < usersList.size(); i++) {
        if (usersList[i]->getUsername() != excludeUser->getUsername) {
            usersNames.append(usersList[i]->getUsername);
            usersNames.append(" ");
        }
    }

    return usersNames;
}

プログラムを実行しようとすると、必ず次のようなエラーが発生します。

非標準の構文; '&' を使用して、メンバーへのポインターを作成します。

どうすれば直せますか?

どのように解決するのですか?

を使用する場合

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

ではなく

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

もし関数ポインタを使いたかったとしても、(& を使って) 関数ポインタのアドレスを取得しなければなりません。

だから、関数呼び出しの後の()を忘れないように注意してね!