[libcxx-commits] [libcxx] [libc++] [test] Improve test coverage for containers' scary.pass.cpp (PR #131550)

via libcxx-commits libcxx-commits at lists.llvm.org
Sun Mar 23 21:56:57 PDT 2025


================
@@ -0,0 +1,26 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// <flat_map>
+
+// class flat_map
+// class flat_multimap
+
+// Extension: SCARY/N2913 iterator compatibility between flat_map and flat_multimap
+
+#include <flat_map>
+
+#include "test_macros.h"
+
+void test() {
+  typedef std::flat_map<int, int> M1;
+  typedef std::flat_multimap<int, int> M2;
+
+  ASSERT_SAME_TYPE(M1::iterator, M2::iterator);
+  ASSERT_SAME_TYPE(M1::const_iterator, M2::const_iterator);
----------------
halbi2 wrote:

I have changed this now. But it is a surprising difference with `map` and `unordered_map`. 

> This is existing practice in the major implementations, and they are motivated to do this even if not mandated to do so, because it improves compilation time which benefits their users.

Has this rationale changed recently?

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


More information about the libcxx-commits mailing list