On Mon, Nov 13, 2023 at 5:16 PM Jonathan Wakely <jwakely@xxxxxxxxxx> wrote: > > Typically, yes, I'd expect a failure. But it's possible for code to do: > > #if __has_include(<foo.h>) > # include <foo.h> > // use features in that header > #else > // roll your own inferior version > #endif And in the particular case of the Qt private headers (where this started) I have seen this, or an equivalent construct, used to not support a feature at all. And yes, I do believe Qt places some things into private headers that they should probably provide a public API to access, but that is a different issue. In *theory* the application would report that feature X is disabled or unavailable during configuration and/or during the checks, and the packager would be expected to realize the implications, but for large apps such messages might be missed or not understood. I am slightly in favor of making missing headers an error as long as it is easy enough to override that to at least provide a few more guard rails. _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue