https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79433
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- I guess another, novel, option would be a __try_include directive: #ifdef __try_include # if __try_include(<string_view>) // it was included without error # else // it wasn't found, or gave an error # endif #endif