У меня есть хорошее представление о том, когда использовать ограничение для аргументов функции. Но все статьи, которые я нашел до сих пор, никогда не упоминают другие объявления (например, значения возвращаемых функций и локальные переменные).Ограничение для типа возвращаемого значения и локальных переменных
Вот один пример:
extern int *alloc_foo(void);
extern int *alloc_bar(void);
int *foo = alloc_foo();
foo[i] = 42;
int *bar = alloc_bar();
f(foo[i]);
Если alloc_foo() и alloc_bar() гарантированно возврата, не с адресами (например, если есть обертки для таНос), я должен заставить их вернуться ограничить? Должен ли я сделать foo и bar ограничивать?