On Wed, Feb 04, 2026 at 05:42:52PM -0500, Nathan Myers wrote:
> +#ifdef __cpp_concepts
> +template <typename _Kt, typename _Container>
> + concept __not_container_iterator =
> + (!is_convertible_v<_Kt&&, typename _Container::iterator> &&
> + !is_convertible_v<_Kt&&, typename _Container::const_iterator>);
> +
> +template <typename _Kt, typename _Container>
> + concept __heterogeneous_key =
> + (!is_same_v<typename _Container::key_type, remove_cvref_t<_Kt>>) &&
Shouldn't this be __remove_cvref_t ?
I see
+FAIL: g++.dg/concepts/expression.C -std=gnu++17 (test for excess errors)
+UNRESOLVED: g++.dg/concepts/expression.C -std=gnu++17 compilation failed to
produce executable
remove_cvref_t is C++20 feature, and while concepts are also a C++20
feature, we allow -fconcepts -std=c++17 to enable concepts already.
Jakub