6031: возвращаемое значение игнорируется (getchar ()) в визуальной студии 2019 - PullRequest
2 голосов
/ 09 апреля 2019

Это не влияет на мой код, но я никогда не видел такой проблемы, пока я не обновил свою визуальную студию. Я не знаю, связано ли это, но я очень смущен, почему возникает проблема.

#include <iostream>
#include <string>
#include <array>

using namespace std;

int main() {

    const int SIZE = 3;

    array<string, SIZE> names = { "S","A","W" };
    array<string, SIZE>::iterator it;

    cout << "names: \n";
    for (it = names.begin(); it != names.end(); it++)
        cout << *it << endl;


    getchar();
    return 0;
}

1 Ответ

5 голосов
/ 09 апреля 2019

Когда Visual Studio была обновлена, они добавили атрибут [[nodiscard]] к getchar.Это говорит компилятору предупреждать пользователя всякий раз, когда возвращаемое значение функции игнорируется.Вы можете узнать больше здесь: https://en.cppreference.com/w/cpp/language/attributes/nodiscard

В этом случае, поскольку вы используете getchar просто для предотвращения закрытия окна, вам не нужно возвращаемое значение, поэтому вы можете игнорировать этопредупреждение.

Мы можем отключить предупреждение, явно игнорируя возвращаемое значение:

(void)getchar(); //Explicitly ignore return value
...