Как удалить атрибут [[nodiscard]] из std::expected?C++

Программы на C++. Форум разработчиков
Anonymous
Как удалить атрибут [[nodiscard]] из std::expected?

Сообщение Anonymous »

В недавно выпущенной версии Visual Studio 2022 версии 17.14 шаблон класса std::expected помечен атрибутом [[nodiscard]].
В результате программа выглядит следующим образом:

Код: Выделить всё

#include 

std::expected f() {
return {};
}

int main() {
f();
}
начало показывать предупреждение:

предупреждение C4834: отбрасывание возвращаемого значения функции с атрибутом [[nodiscard]]

Я знаю, что игнорирование std::expected не является хорошей практикой, но наша кодовая база велика, и быстро изменить все такие места сложно.
Я могу отключить предупреждение, написав здесь (void)f(). Но опять же, требуется изменить каждое такое место вызова, а их может быть слишком много.
Есть ли способ удалить атрибут [[nodiscard]] из std::expected в Microsoft STL, но сохранить атрибут для других функций и классов в стандартной библиотеке?

Подробнее здесь: https://stackoverflow.com/questions/796 ... tdexpected

Вернуться в «C++»