[libcxx-commits] [libcxx] [llvm] [libcxx] improves diagnostics for containers with bad value types (PR #106296)

Christopher Di Bella via libcxx-commits libcxx-commits at lists.llvm.org
Mon Sep 16 14:29:56 PDT 2024


================
@@ -1024,6 +1029,15 @@ template <class _Key,
           class _Pred  = equal_to<_Key>,
           class _Alloc = allocator<pair<const _Key, _Tp> > >
 class _LIBCPP_TEMPLATE_VIS unordered_map {
+  // TODO(#106635): replace with _LIBCPP_CHECK_CONTAINER_VALUE_TYPE_REQUIREMENTS
+  // Remember to remove relevant headers when this is completed.
----------------
cjdb wrote:

References, `const`, `volatile`, etc. I'm especially leery of `map<int const, int>`, because it's in no way interface-distinguishable from `map<int, int>`, yet is its own instantiation.

I'm happy to take point on that over the next few releases, but we'll need to come up with a plan (and potentially coordinate with MS/STL and libstdc++).

https://github.com/llvm/llvm-project/pull/106296


More information about the libcxx-commits mailing list