Как удалить атрибут [[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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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