Я хочу использовать сторонние функции, которые предоставляют его API через структуру, полную указателей на функции.например:
struct S {
using p_func1 = int(*)(int, int);
p_func1 func1;
using p_func2 = int(*)(char*);
p_func2 func2;
}
Сторонняя библиотека инициализирует эту структуру.Возвращаемые значения этих функций (func1, func2) необходимо проверить, и я надеялся, что смогу как-то манифестировать атрибут [[discard]]
, чтобы убедиться, что возвращаемые значения проверены.
Есть ли способсделать это, поддерживая ABI структуры?
Редактировать: Пока лучшее, что я мог придумать, это иметь другую структуру, например так:
struct S_wrap {
S orig;
[[nodiscard]] int func1(int a, int b){ return orig.func1(a, b); }
[[nodiscard]] int func2(char* a){ return orig.func2(a); }
}
Я надеюсьесть что-то лучше