Атрибут nodiscard
Для примера написал такой класс:
class TestClass {
public:
char v(const string &str) const {
return str[0];
}
};
Компилятор хочет, чтобы я пометил функцию v атрибутом [[nodiscard]]. Почему?
Ответы (1 шт):
Автор решения: αλεχολυτ
→ Ссылка
На основании упомянутой в комментарии ссылки clang-tidy (используемый в CLion) предлагает добавить атрибут [[nodiscard]] к функции, т.к. функция подходит под перечисленный список условий. Суть условий в том, что видимое поведение функции может быть доступно только через возвращаемый результат. Если его проигнорировать, то такая функция будет выглядеть бесполезной. Чтобы этого избежать как раз существует упомянутый атрибут.
Подробнее о существующих атрибутах C++ можно почитать здесь.