Атрибут nodiscard

Для примера написал такой класс:

class TestClass {
public:
    char v(const string &str) const {
        return str[0];
    }
};

Компилятор хочет, чтобы я пометил функцию v атрибутом [[nodiscard]]. Почему?


Ответы (1 шт):

Автор решения: αλεχολυτ

На основании упомянутой в комментарии ссылки clang-tidy (используемый в CLion) предлагает добавить атрибут [[nodiscard]] к функции, т.к. функция подходит под перечисленный список условий. Суть условий в том, что видимое поведение функции может быть доступно только через возвращаемый результат. Если его проигнорировать, то такая функция будет выглядеть бесполезной. Чтобы этого избежать как раз существует упомянутый атрибут.

Подробнее о существующих атрибутах C++ можно почитать здесь.

→ Ссылка