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>;
````

Reply via email to