@tcanens pointed out the current behavior of the macro breaks the usage
pattern described in http://wg21.link/SD6
# if __has_include(<optional>) # include <optional> # if __cpp_lib_optional >= 201606 # define have_optional 1 # endif
To support this usage pattern the hard errror is removed. Instead the
header includes nothing but the <version> header.