Итак, я получаю это предупреждение для строки:
warning: ignoring attributes on template argument ‘int (*)(DIR*) {aka int (*)(__dirstream*)}’ [-Wignored-attributes]
std::unique_ptr<DIR, decltype(closedir)*> cd(od, closedir);
Таким образом, я вижу атрибут подсказки компилятора __nonnull в спецификации c:
/* Close the directory stream DIRP.
Return 0 if successful, -1 if not.
This function is a possible cancellation point and therefore not
marked with __THROW. */
extern int closedir (DIR *__dirp) __nonnull ((1));
Так почему же нет t declspe c скопировать этот атрибут и как мне заставить его замолчать, не написав что-нибудь уродливое?
Написано для c ++ 11, но я был бы рад услышать, что «они исправили это позже»