https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117887
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The workaround is to place the requires outside of the template type alias.
That is replace:
```
// If the compare is not transparent we want to construct key_type once.
template <typename K>
using KeyTypeOrK = std::conditional_t<requires {
typename key_compare::is_transparent;
}, K, key_type>;
With:
````
// If the compare is not transparent we want to construct key_type once.
static constexpr bool key_compare_is_transparent = requires {
typename key_compare::is_transparent;
};
// If the compare is not transparent we want to construct key_type once.
template <typename K>
using KeyTypeOrK = std::conditional_t<key_compare_is_transparent, K,
key_type>;
````