All compilers seem to support __has_cpp_attribute before they support [[likely]], and this is much less error-prone than hard-coding compiler versions.