0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

24.5 Unordered associative containers [unord] C++N4910:2022 (641) p925.cpp

Last updated at Posted at 2022-08-07

はじめに(Introduction)

N4910 Working Draft, Standard for Programming Language C++
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4910.pdf

n4910は、ISO/IEC JTC1 SC22 WG21の作業原案(Working Draft)です。
公式のISO/IEC 14882原本ではありません。
ISO/IEC JTC1 SC22 WG21では、可能な限り作業文書を公開し、幅広い意見を求めています。
一連の記事はコード断片をコンパイルできる形にする方法を検討してコンパイル、リンク、実行して、規格案の原文と処理系(g++, Clang++)との違いを確認し、技術内容を検討し、ISO/IEC JTC1 SC22 WG21にフィードバックするために用います。
また、CERT C++, MISRA C++等のコーディング標準のコード断片をコンパイルする際の参考にさせていただこうと考えています。CERT C++, MISRA C++が標準化の動きとの時間的なずれがあれば確認できれば幸いです。また、boostライブラリとの関連、Linux OS, TOPPERSカーネル、g++(GCC), clang++(LLVM)との関係も調査中です。
何か、抜け漏れ、耳より情報がありましたらおしらせくださると幸いです。

<この項は書きかけです。順次追記します。>

背景(back ground)

C/C++でコンパイルエラーが出ると、途方にくれることがしばしばあります。
何回かに1回は、該当するエラーが検索できます。
ただ、条件が違っていて、そこでの修正方法では目的を達成しないこともしばしばです。いろいろな条件のコンパイルエラーとその対応方法について、広く記録することによって、いつか同じエラーに遭遇した時にやくに立つことを目指しています。

この半年の間で、三度、自分のネットでの記録に助けられたことがあります。
また過去に解決できなかった記録を10種類以上、最近になって解決できたことがあります。それは、主に次の3つの情報に基づいています。

cpprefjp - C++日本語リファレンス

コンパイラの実装状況

また
https://researchmap.jp/joub9b3my-1797580/#_1797580
に記載したサイトのお世話になっています。

作業方針(sequence)

Clang++では-std=c++03, C++2bの2種類
g++では-std=c++03, c++2bの2種類
でコンパイルし、

1)コンパイルエラーを収集する。
2)コンパイルエラーをなくす方法を検討する。
コンパイルエラーになる例を示すだけが目的のコードは、コンパイルエラーをなくすのではなく、コンパイルエラーの種類を収集するだけにする。
文法を示すのが目的のコード場合に、コンパイルエラーをなくすのに手間がかかる場合は、順次作業します。
3)リンクエラーをなくす方法を検討する。
文法を示すのが目的のコード場合に、リンクエラーをなくすのに手間がかかる場合は、順次作業します。
4)意味のある出力を作る。
コンパイル、リンクが通っても、意味のある出力を示そうとすると、コンパイル・リンクエラーが出て収拾できそうにない場合がある。順次作業します。

1)だけのものから4)まで進んだものと色々ある状態です。一歩でも前に進むご助言をお待ちしています。「検討事項」の欄に現状を記録するようにしています。

C++N4910:2022 Standard Working Draft on ISO/IEC 14882(0) sample code compile list

C++N4741, 2018 Standard Working Draft on ISO/IEC 14882 sample code compile list

C++N4606, 2016符号断片編纂一覧(example code compile list)

C++N4606, 2016 Working Draft 2016, ISO/IEC 14882, C++ standard(1) Example code compile list
https://qiita.com/kaizen_nagoya/items/df5d62c35bd6ed1c3d43/

C++N3242, 2011 sample code compile list on clang++ and g++

編纂器(Compiler)

clang++ --version

Debian clang version 14.0.5-++20220610033153+c12386ae247c-1~exp1~20220610153237.151
Target: x86_64-pc-linux-gnu, Thread model: posix, InstalledDir: /usr/bin

g++- --version

g++ (GCC) 12.1.0 Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

24.5 Unordered associative containers [unord] C++N4910:2022 (641) p925.cpp

算譜(source code)

p925.cpp
// C++N4910 Committee Draft, Standard for Programming Language C++
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4910.pdf
const char * n4910 = "24.5 Unordered associative containers [unord] C++N4910:2022 (641) p925.cpp";
// Debian clang version 14.0.5-++20220610033153+c12386ae247c-
// g++ (GCC) 12.1.0 Copyright (C) 2022 Free Software Foundation, Inc.
// Edited by Dr. OGAWA Kiyoshi. Compile procedure and results record.
// C++N4910:2022 Standard Working Draft on ISO/IEC 14882(0) sample code compile list
// https://qiita.com/kaizen_nagoya/items/fc957ddddd402004bb91

#include "N4910.h"

using namespace std;

// 24.5.1 In general [unord.general]
//  The header <unordered_map> defines the class templates unordered_map and unordered_multimap; the header <unordered_set> defines the class templates unordered_set and unordered_multiset.
//  The exposition-only alias templates iter-value-type , iter-key-type , iter-mapped-type , and iter-to-alloc-type defined in 24.4.1 may appear in deduction guides for unordered containers.
// 24.5.2 Header <unordered_map> synopsis [unord.map.syn]
#include <compare> // see 17.11.1 
#include <initializer_list> // see 17.10.2
namespace std {
// 24.5.4, class template unordered_map template<class Key,
class T,
          class Hash = hash<Key>,
                    class Pred = equal_to<Key>,
                              class Alloc = allocator<pair<const Key, T>>>
                                                class unordered_map;
// 24.5.5, class template unordered_multimap template<class Key,
class T,
          class Hash = hash<Key>,
                    class Pred = equal_to<Key>,
                              class Alloc = allocator<pair<const Key, T>>>
                                                class unordered_multimap;
template<class Key, class T, class Hash, class Pred, class Alloc>
bool operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& a,
                const unordered_map<Key, T, Hash, Pred, Alloc>& b);
template<class Key, class T, class Hash, class Pred, class Alloc>
bool operator==(const unordered_multimap<Key, T, Hash, Pred, Alloc>& a,
                const unordered_multimap<Key, T, Hash, Pred, Alloc>& b);
template<class Key, class T, class Hash, class Pred, class Alloc>
void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
          unordered_map<Key, T, Hash, Pred, Alloc>& y)
noexcept(noexcept(x.swap(y)));
template<class Key, class T, class Hash, class Pred, class Alloc>
void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
          unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
noexcept(noexcept(x.swap(y)));
template<class K, class T, class H, class P, class A, class Predicate>
typename unordered_map<K, T, H, P, A>::size_type
erase_if(unordered_map<K, T, H, P, A>& c, Predicate pred);
template<class K, class T, class H, class P, class A, class Predicate>
typename unordered_multimap<K, T, H, P, A>::size_type
erase_if(unordered_multimap<K, T, H, P, A>& c, Predicate pred);
}
}
namespace pmr {
template<class Key,
         class T,
         class Hash = hash<Key>,
         class Pred = equal_to<Key>>
using unordered_map =
    std::unordered_map<Key, T, Hash, Pred,
    polymorphic_allocator<pair<const Key, T>>>;
template<class Key,
         class T,
         class Hash = hash<Key>,
         class Pred = equal_to<Key>>
using unordered_multimap =
    std::unordered_multimap<Key, T, Hash, Pred,
    polymorphic_allocator<pair<const Key, T>>>;
// 24.5.3 Header <unordered_set> synopsis  [unord.set.syn]
#include <compare> // see 17.11.1
#include <initializer_list> // see 17.10.2
namespace std {
// 24.5.6, class template unordered_set template<class Key,
class Hash = hash<Key>,
          class Pred = equal_to<Key>,
                    class Alloc = allocator<Key>>
                                      class unordered_set;
// 24.5.7, class template unordered_multiset template<class Key,
class Hash = hash<Key>,
          class Pred = equal_to<Key>,
                    class Alloc = allocator<Key>>
                                      class unordered_multiset;
template<class Key, class Hash, class Pred, class Alloc>
bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a,
                const unordered_set<Key, Hash, Pred, Alloc>& b);
template<class Key, class Hash, class Pred, class Alloc>
bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a,
                const unordered_multiset<Key, Hash, Pred, Alloc>& b);
template<class Key, class Hash, class Pred, class Alloc>
void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
          unordered_set<Key, Hash, Pred, Alloc>& y)
noexcept(noexcept(x.swap(y)));
template<class Key, class Hash, class Pred, class Alloc>
void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
          unordered_multiset<Key, Hash, Pred, Alloc>& y)
noexcept(noexcept(x.swap(y)));
template<class K, class H, class P, class A, class Predicate>
typename unordered_set<K, H, P, A>::size_type
erase_if(unordered_set<K, H, P, A>& c, Predicate pred);
template<class K, class H, class P, class A, class Predicate>
typename unordered_multiset<K, H, P, A>::size_type
erase_if(unordered_multiset<K, H, P, A>& c, Predicate pred);
namespace pmr {
template<class Key,
         class Hash = hash<Key>,
         class Pred = equal_to<Key>>
using unordered_set = std::unordered_set<Key, Hash, Pred,
      polymorphic_allocator<Key>>;
template<class Key,
         class Hash = hash<Key>,
         class Pred = equal_to<Key>>
using unordered_multiset = std::unordered_multiset<Key, Hash, Pred,
      polymorphic_allocator<Key>>;
// 24.5.4 Class template unordered_map [unord.map]
// 24.5.4.1 Overview [unord.map.overview]
//  An unordered_map is an unordered associative container that supports unique keys (an unordered_map contains at most one of each key value) and that associates values of another type mapped_type with the keys. The unordered_map class supports forward iterators.
//  An unordered_map meets all of the requirements of a container (24.2.2.2), of an allocator-aware container (24.2.2.5), and of an unordered associative container (24.2.8). It provides the operations described in the preceding requirements table for unique keys; that is, an unordered_map supports the a_uniq operations in that table, not the a_eq operations. For an unordered_map<Key, T> the key type is Key, the mapped type is T, and the value type is pair<const Key, T>.
//  Subclause 24.5.4 only describes operations on unordered_map that are not described in one of the requirement
tables, or for which there is additional semantic information.
namespace std {
template<class Key,
         class T,
         class Hash = hash<Key>,
         class Pred = equal_to<Key>,
         class Allocator = allocator<pair<const Key, T>>>
}
}
class unordered_map {
public:
// types
using key_type = Key;
using mapped_type = T;
using value_type = pair<const Key, T>;
using hasher = Hash;
using key_equal = Pred;
using allocator_type = Allocator;
using pointer = typename allocator_traits<Allocator>::pointer;
using const_pointer = typename allocator_traits<Allocator>::const_pointer;
using reference  = value_type&;
using const_reference = const value_type&;
using size_type = implementation_defined ; // see 24.2
using difference_type = implementation_defined ; // see 24.2
using iterator = implementation_defined ; // see 24.2
using const_iterator = implementation_defined ; // see 24.2
using local_iterator = implementation_defined ; // see 24.2
using const_local_iterator = implementation_defined ; // see 24.2
using node_type = unspecified;
using insert_return_type = insert-return-type<iterator, node_type>; // // 24.5.4.2, construct/copy/destroy
unordered_map();
    explicit unordered_map(size_type n,
                           const hasher& hf = hasher(),
                           const key_equal& eql = key_equal(),
                           const allocator_type& a = allocator_type());
    template<class InputIterator>
    unordered_map(InputIterator f, InputIterator l, size_type n = see below,
                  const hasher& hf = hasher(),
                  const key_equal& eql = key_equal(),
                  const allocator_type& a = allocator_type());
    template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg, size_type n = see below,
            const hasher& hf = hasher(), const key_equal& eql = key_equal(),
            const allocator_type& a = allocator_type());
    unordered_map(const unordered_map&);
    unordered_map(unordered_map&&);
    explicit unordered_map(const Allocator&);
    unordered_map(const unordered_map&, const type_identity_t<Allocator>&);
    unordered_map(unordered_map&&, const type_identity_t<Allocator>&);
    unordered_map(initializer_list<value_type> il,
                  size_type n = see below,
                  const hasher& hf = hasher(),
                  const key_equal& eql = key_equal(),
                  const allocator_type& a = allocator_type());
    unordered_map(size_type n, const allocator_type& a)
        : unordered_map(n, hasher(), key_equal(), a) { }
    unordered_map(size_type n, const hasher& hf, const allocator_type& a)
        : unordered_map(n, hf, key_equal(), a) { }
    template<class InputIterator>
    unordered_map(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
        : unordered_map(f, l, n, hasher(), key_equal(), a) { }
    template<class InputIterator>
    unordered_map(InputIterator f, InputIterator l, size_type n, const hasher& hf,
                  const allocator_type& a)
        : unordered_map(f, l, n, hf, key_equal(), a) { } template<container-compatible-range<value_type> R>
    unordered_map(from_range_t, R&& rg, size_type n, const allocator_type& a)
        : unordered_map(from_range, std::forward<R>(rg), n, hasher(), key_equal(), a) { }
    template<container-compatible-range<value_type> R>
    unordered_map(from_range_t, R&& rg, size_type n, const hasher& hf, const allocator_type& a)
        : unordered_map(from_range, std::forward<R>(rg), n, hf, key_equal(), a) { }
    unordered_map(initializer_list<value_type> il, size_type n, const allocator_type& a)
        : unordered_map(il, n, hasher(), key_equal(), a) { }
    unordered_map(initializer_list<value_type> il, size_type n, const hasher& hf,
                  const allocator_type& a)
        : unordered_map(il, n, hf, key_equal(), a) { }
    ~unordered_map();
    unordered_map& operator=(const unordered_map&);
    unordered_map& operator=(unordered_map&&)
    noexcept(allocator_traits<Allocator>::is_always_equal::value &&
             is_nothrow_move_assignable_v<Hash> &&
             is_nothrow_move_assignable_v<Pred>);
    unordered_map& operator=(initializer_list<value_type>);
    allocator_type get_allocator() const noexcept;
// iterators
    iterator       begin() noexcept;
    const_iterator begin() const noexcept;
    iterator       end() noexcept;
    const_iterator end() const noexcept;
    const_iterator cbegin() const noexcept;
    const_iterator cend() const noexcept;
// capacity
    [[nodiscard]] bool empty() const noexcept;
    size_type size() const noexcept;
    size_type max_size() const noexcept;
// 24.5.4.4, modifiers
    template<class... Args> pair<iterator, bool> emplace(Args&&... args);
    template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args);
    pair<iterator, bool> insert(const value_type& obj);
    pair<iterator, bool> insert(value_type&& obj);
    template<class P> pair<iterator, bool> insert(P&& obj);
    iterator insert(const_iterator hint, const value_type& obj);
    iterator insert(const_iterator hint, value_type&& obj);
    template<class P> iterator insert(const_iterator hint, P&& obj);
    template<class InputIterator> void insert(InputIterator first, InputIterator last);
    template<container-compatible-range<value_type> R>
    void insert_range(R&& rg);
    void insert(initializer_list<value_type>);
    node_type extract(const_iterator position);
    node_type extract(const key_type& x);
    template<class K> node_type extract(K&& x);
    insert_return_type insert(node_type&& nh);
    iterator           insert(const_iterator hint, node_type&& nh);
    template<class... Args>
    pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
    template<class... Args>
    pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
    template<class... Args>
    iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
    template<class... Args>
    iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
    template<class M>
    pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
    template<class M>
    pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
    template<class M>
    iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
    template<class M>
    iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
    iterator  erase(iterator position);
    iterator  erase(const_iterator position);
    size_type erase(const key_type& k);
    template<class K> size_type erase(K&& x);
    iterator  erase(const_iterator first, const_iterator last);
    void      swap(unordered_map&)
    noexcept(allocator_traits<Allocator>::is_always_equal::value &&
             is_nothrow_swappable_v<Hash> &&
             is_nothrow_swappable_v<Pred>);
    void      clear() noexcept;
    template<class H2, class P2>
    void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
    template<class H2, class P2>
    void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
    template<class H2, class P2>
    void merge(unordered_multimap<Key, T, H2, P2, Allocator>& source);
    template<class H2, class P2>
    void merge(unordered_multimap<Key, T, H2, P2, Allocator>&& source);
// observers
    hasher hash_function() const;
    key_equal key_eq() const;
// map operations
    iterator
    const_iterator
    template<class K>
    iterator
    template<class K>
    find(const key_type& k);
    find(const key_type& k) const;
    find(const K& k);
    const_iterator find(const K& k) const;
    template<class K>
    size_type        count(const key_type& k) const;
    template<class K>
    size_type      count(const K& k) const;
    bool             contains(const key_type& k) const;
    template<class K>
    bool           contains(const K& k) const;
    pair<iterator, iterator>
    pair<const_iterator, const_iterator>
    template<class K>
// 24.5.4.3, element access
    mapped_type& operator[](const key_type& k);
    mapped_type& operator[](key_type&& k);
    mapped_type& at(const key_type& k);
    const mapped_type& at(const key_type& k) const;
// bucket interface
    size_type bucket_count() const noexcept;
    size_type max_bucket_count() const noexcept;
    size_type bucket_size(size_type n) const;
    size_type bucket(const key_type& k) const;
    local_iterator begin(size_type n);
    const_local_iterator begin(size_type n) const;
    local_iterator end(size_type n);
    const_local_iterator end(size_type n) const;
    const_local_iterator cbegin(size_type n) const;
    const_local_iterator cend(size_type n) const;
// hash policy
    float load_factor() const noexcept;
    float max_load_factor() const noexcept;
    void max_load_factor(float z);
    void rehash(size_type n);
    void reserve(size_type n);
};
template<class InputIterator,
         class Hash = hash<iter_key_type<InputIterator>>,
         class Pred = equal_to<iter_key_type<InputIterator>>,
         class Allocator = allocator<iter_to_alloc_type<InputIterator>>>
                                     unordered_map(InputIterator, InputIterator, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                                     -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash, Pred, Allocator>;
         template<ranges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
                  class Allocator = allocator<range_to_alloc_type<R>>>
                          unordered_map(from_range_t, R&&, typename see below::size_type = see below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                          -> unordered_map<range_key_type<R>, range-mapped-type<R>, Hash, Pred, Allocator>;
                  equal_range(const key_type& k);
                  equal_range(const key_type& k) const;
                  equal_range(const K& k);
                  pair<const_iterator, const_iterator> equal_range(const K& k) const;
                  pair<iterator, iterator>
                  template<class K>
                  template<class Key, class T, class Hash = hash<Key>,
                           class Pred = equal_to<Key>, class Allocator = allocator<pair<const Key, T>>>
                                   unordered_map(initializer_list<pair<Key, T>>,
                                           typename see below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                                   -> unordered_map<Key, T, Hash, Pred, Allocator>;
                           template<class InputIterator, class Allocator>
                           unordered_map(InputIterator, InputIterator, typename see_below::size_type, Allocator)
                           -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
                                   equal_to<iter-key-type<InputIterator>>, Allocator>;
                           template<class InputIterator, class Allocator>
                           unordered_map(InputIterator, InputIterator, Allocator)
                           -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
                                   equal_to<iter_key_type<InputIterator>>, Allocator>;
                           template<class InputIterator, class Hash, class Allocator>
                           unordered_map(InputIterator, InputIterator, typename see_below::size_type, Hash, Allocator)
                           -> unordered_map<iter-key-type<InputIterator>, iter_mapped_type<InputIterator>, Hash, equal_to<iter_key_type<InputIterator>>, Allocator>;
template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
    -> unordered_map<range_key_type<R>, range_mapped_type<R>, hash<range_key_type<R>>, equal_to<range_key_type<R>>, Allocator>;
template<ranges::input_range R, class Allocator>
unordered_map(from_range_t, R&&, Allocator)
-> unordered_map<range-key-type<R>, range_mapped_type<R>, hash<range-key-type<R>>, equal_to<range_key_type<R>>, Allocator>;
template<ranges::input_range R, class Hash, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
-> unordered_map<range-key-type<R>, range_mapped_type<R>, Hash, equal_to<range_key_type<R>>, Allocator>;
template<class Key, class T, class Allocator> unordered_map(initializer_list<pair<Key, T>>, typename see below::size_type,
        Allocator)
-> unordered_map<Key, T, hash<Key>, equal_to<Key>, Allocator>;
template<class Key, class T, class Allocator>
unordered_map(initializer_list<pair<Key, T>>, Allocator)
-> unordered_map<Key, T, hash<Key>, equal_to<Key>, Allocator>;
template<class Key, class T, class Hash, class Allocator> unordered_map(initializer_list<pair<Key, T>>, typename see_below::size_type, Hash, Allocator)
-> unordered_map<Key, T, Hash, equal_to<Key>, Allocator>;
}
//  A size_type parameter type in an unordered_map deduction guide refers to the size_type member type of the type deduced by the deduction guide.
// 24.5.4.2 Constructors [unord.map.cnstr]
unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
        const hasher& hf = hasher(),
        const key_equal& eql = key_equal(),
        const allocator_type& a = allocator_type());
// Effects: Constructs an empty unordered_map using the specified hash function, key equality predicate, and allocator, and using at least n buckets. For the default constructor, the number of buckets is implementation-defined. max_load_factor() returns 1.0.
// Complexity: Constant.
const hasher& hf = hasher(),
              const key_equal& eql = key_equal(),
                               const allocator_type& a = allocator_type());
// Effects: Constructs an empty unordered_map using the specified hash function, key equality predicate, and allocator, and using at least n buckets. If n is not provided, the number of buckets is implementation- defined. Then inserts elements from the range [f, l), rg, or il, respectively. max_load_factor() returns 1.0.
// Complexity: Average case linear, worst case quadratic.
template<class InputIterator>
unordered_map(InputIterator f, InputIterator l,
              size_type n = see_below,
              const hasher& hf = hasher(),
              const key_equal& eql = key_equal(),
              const allocator_type& a = allocator_type());
template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg,
        size_type n = see below,
        const hasher& hf = hasher(),
        const key_equal& eql = key_equal(),
        const allocator_type& a = allocator_type());
unordered_map(initializer_list<value_type> il, size_type n = see below,
// 24.5.4.3 Element access [unord.map.elem]
              mapped_type& operator[](const key_type& k);
// Effects: Equivalent to: return try_emplace(k).first->second; mapped_type& operator[](key_type&& k);
// Effects: Equivalent to: return try_emplace(move(k)).first->second; mapped_type& at(const key_type& k);
const mapped_type& at(const key_type& k) const;
// Returns: A reference to x.second, where x is the (unique) element whose key is equivalent to k. Throws: An exception object of type out_of_range if no such element is present.
// 24.5.4.4 Modifiers [unord.map.modifiers]
template<class P>
pair<iterator, bool> insert(P&& obj);
// Constraints: is_constructible_v<value_type, P&&> is true. Effects: Equivalent to: return emplace(std::forward<P>(obj));
template<class P>
iterator insert(const_iterator hint, P&& obj);
// Constraints: is_constructible_v<value_type, P&&> is true.
// Effects: Equivalent to: return emplace_hint(hint, std::forward<P>(obj));
template<class... Args>
pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
template<class... Args>
iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
// Preconditions: value_type is Cpp17EmplaceConstructible into unordered_map from piecewise_con- struct, forward_as_tuple(k), forward_as_tuple(std::forward<Args>(args)...).
// Effects: If the map already contains an element whose key is equivalent to k, there is no effect. Otherwise inserts an object of type value_type constructed with piecewise_construct, forward_as_tuple(k), forward_as_tuple(std::forward<Args>(args)...).
// Returns: In the first overload, the bool component of the returned pair is true if and only if the insertion took place. The returned iterator points to the map element whose key is equivalent to k.
// Complexity: The same as emplace and emplace_hint, respectively.
template<class... Args>
pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
template<class... Args>
iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
// Preconditions: value_type is Cpp17EmplaceConstructible into unordered_map from piecewise_con- struct, forward_as_tuple(std::move(k)), forward_as_tuple(std::forward<Args>(args)...).
// Effects: If the map already contains an element whose key is equivalent to k, there is no effect. Otherwise inserts an object of type value_type constructed with piecewise_construct, forward_- as_tuple(std::move(k)), forward_as_tuple(std::forward<Args>(args)...).
// Returns: In the first overload, the bool component of the returned pair is true if and only if the insertion took place. The returned iterator points to the map element whose key is equivalent to k.
// Complexity: The same as emplace and emplace_hint, respectively.
template<class M>
pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
template<class M>
iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
// Mandates: is_assignable_v<mapped_type&, M&&> is true.
// Preconditions: value_type is Cpp17EmplaceConstructible into unordered_map from k, std::for-
ward<M>(obj).
// Effects: If the map already contains an element e whose key is equivalent to k, assigns std::for- ward<M>(obj) to e.second. Otherwise inserts an object of type value_type constructed with k, std::forward<M>(obj).
// Returns: In the first overload, the bool component of the returned pair is true if and only if the insertion took place. The returned iterator points to the map element whose key is equivalent to k.
// Complexity: The same as emplace and emplace_hint, respectively.
template<class M>
pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
template<class M>
iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
// Mandates: is_assignable_v<mapped_type&, M&&> is true.
// Preconditions: value_type is Cpp17EmplaceConstructible into unordered_map from std::move(k),
std::forward<M>(obj).
// Effects: If the map already contains an element e whose key is equivalent to k, assigns std::for- ward<M>(obj) to e.second. Otherwise inserts an object of type value_type constructed with std:: move(k), std::forward<M>(obj).
// Returns: In the first overload, the bool component of the returned pair is true if and only if the insertion took place. The returned iterator points to the map element whose key is equivalent to k.
// Complexity: The same as emplace and emplace_hint, respectively.
// 24.5.4.5 Erasure [unord.map.erasure]
template<class K, class T, class H, class P, class A, class Predicate>
typename unordered_map<K, T, H, P, A>::size_type
erase_if(unordered_map<K, T, H, P, A>& c, Predicate pred);
// Effects: Equivalent to:
auto original_size = c.size();
for (auto i = c.begin(), last = c.end(); i != last; ) {
    if (pred(*i)) {
        i = c.erase(i);
    } else {
        ++i;
    }
}
return original_size - c.size();
// 24.5.5 Class template unordered_multimap  [unord.multimap]
// 24.5.5.1 Overview [unord.multimap.overview]
//  An unordered_multimap is an unordered associative container that supports equivalent keys (an instance of unordered_multimap may contain multiple copies of each key value) and that associates values of another type mapped_type with the keys. The unordered_multimap class supports forward iterators.
//  An unordered_multimap meets all of the requirements of a container (24.2.2.2), of an allocator-aware container (24.2.2.5), and of an unordered associative container (24.2.8). It provides the operations described in the preceding requirements table for equivalent keys; that is, an unordered_multimap supports the a_eq operations in that table, not the a_uniq operations. For an unordered_multimap<Key, T> the key type is Key, the mapped type is T, and the value type is pair<const Key, T>.
//  Subclause 24.5.5 only describes operations on unordered_multimap that are not described in one of the requirement tables, or for which there is additional semantic information.
namespace std {
template<class Key,
         class T,
         class Hash = hash<Key>,
         class Pred = equal_to<Key>,
         class Allocator = allocator<pair<const Key, T>>>
class unordered_multimap {
public:
// types
    using key_type = Key;
    using mapped_type =T;
    using value_type = pair<const Key, T>;
    using hasher = Hash;
    using key_equal = Pred;
    using allocator_type = Allocator;
    using pointer = typename allocator_traits<Allocator>::pointer;
    using const_pointer = typename allocator_traits<Allocator>::const_pointer;
    using reference  = value_type&;
    using const_reference = const value_type&;
    using size_type = implementation_defined ; // see 24.2
    using difference_type = implementation_defined ; // see 24.2
    using iterator = implementation_defined ; // see 24.2
    using const_iterator = implementation_defined ; // see 24.2
    using local_iterator = implementation_defined ; // see 24.2
    using const_local_iterator = implementation_defined ; // see 24.2
    using node_type  = unspecified;
// 24.5.5.2, construct/copy/destroy unordered_multimap();
    explicit unordered_multimap(size_type n,
                                const hasher& hf = hasher(),
                                const key_equal& eql = key_equal(),
                                const allocator_type& a = allocator_type());
    template<class InputIterator>
    unordered_multimap(InputIterator f, InputIterator l, size_type n = see_below,
                       const hasher& hf = hasher(),
                       const key_equal& eql = key_equal(),
                       const allocator_type& a = allocator_type());
    template<container-compatible-range<value_type> R> unordered_multimap(from_range_t, R&& rg,
            size_type n = see_below,
            const hasher& hf = hasher(),
            const key_equal& eql = key_equal(),
            const allocator_type& a = allocator_type());
    unordered_multimap(const unordered_multimap&);
    unordered_multimap(unordered_multimap&&);
    explicit unordered_multimap(const Allocator&);
    unordered_multimap(const unordered_multimap&, const type_identity_t<Allocator>&);
    unordered_multimap(unordered_multimap&&, const type_identity_t<Allocator>&);
    unordered_multimap(initializer_list<value_type> il,
                       size_type n = see_below,
                       const hasher& hf = hasher(),
                       const key_equal& eql = key_equal(),
                       const allocator_type& a = allocator_type());
    unordered_multimap(size_type n, const allocator_type& a)
        : unordered_multimap(n, hasher(), key_equal(), a) { }
    unordered_multimap(size_type n, const hasher& hf, const allocator_type& a)
        : unordered_multimap(n, hf, key_equal(), a) { }
    template<class InputIterator>
    unordered_multimap(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
        : unordered_multimap(f, l, n, hasher(), key_equal(), a) { }
    template<class InputIterator>
    unordered_multimap(InputIterator f, InputIterator l, size_type n, const hasher& hf,
                       const allocator_type& a)
        : unordered_multimap(f, l, n, hf, key_equal(), a) { } template<container_compatible_range<value_type> R>
    unordered_multimap(from_range_t, R&& rg, size_type n, const allocator_type& a)
        : unordered_multimap(from_range, std::forward<R>(rg),
                             n, hasher(), key_equal(), a) { } template<container_compatible_range<value_type> R>
    unordered_multimap(from_range_t, R&& rg, size_type n, const hasher& hf,
                       const allocator_type& a)
        : unordered_multimap(from_range, std::forward<R>(rg), n, hf, key_equal(), a) { }
    unordered_multimap(initializer_list<value_type> il, size_type n, const allocator_type& a)
        : unordered_multimap(il, n, hasher(), key_equal(), a) { }
    unordered_multimap(initializer_list<value_type> il, size_type n, const hasher& hf,
                       const allocator_type& a)
        : unordered_multimap(il, n, hf, key_equal(), a) { }
    ~unordered_multimap();
    unordered_multimap& operator=(const unordered_multimap&); unordered_multimap& operator=(unordered_multimap&&)
    noexcept(allocator_traits<Allocator>::is_always_equal::value &&
             is_nothrow_move_assignable_v<Hash> &&
             is_nothrow_move_assignable_v<Pred>);
    unordered_multimap& operator=(initializer_list<value_type>);
    allocator_type get_allocator() const noexcept;
// iterators
    iterator       begin() noexcept;
    const_iterator begin() const noexcept;
    iterator       end() noexcept;
    const_iterator end() const noexcept;
    const_iterator cbegin() const noexcept;
    const_iterator cend() const noexcept;
// capacity
    [[nodiscard]] bool empty() const noexcept;
    size_type size() const noexcept;
    size_type max_size() const noexcept;
// 24.5.5.3, modifiers
    template<class... Args> iterator emplace(Args&&... args);
    template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
    iterator insert(value_type&& obj);
    template<class P> iterator insert(P&& obj);
    iterator insert(const_iterator hint, const value_type& obj);
    iterator insert(const_iterator hint, value_type&& obj);
    template<class P> iterator insert(const_iterator hint, P&& obj);
    template<class InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
    void insert_range(R&& rg);
    void insert(initializer_list<value_type>);
    node_type extract(const_iterator position);
    node_type extract(const key_type& x);
    template<class K> node_type extract(K&& x);
    iterator insert(node_type&& nh);
    iterator insert(const_iterator hint, node_type&& nh);
    iterator  erase(iterator position);
    iterator  erase(const_iterator position);
    size_type erase(const key_type& k);
    template<class K> size_type erase(K&& x);
    iterator  erase(const_iterator first, const_iterator last);
    void      swap(unordered_multimap&)
    noexcept(allocator_traits<Allocator>::is_always_equal::value &&
             is_nothrow_swappable_v<Hash> &&
             is_nothrow_swappable_v<Pred>);
    void      clear() noexcept;
    template<class H2, class P2>
    void merge(unordered_multimap<Key, T, H2, P2, Allocator>& source);
    template<class H2, class P2>
    void merge(unordered_multimap<Key, T, H2, P2, Allocator>&& source);
    template<class H2, class P2>
    void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
    template<class H2, class P2>
    void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
// observers
    hasher hash_function() const;
    key_equal key_eq() const;
// map operations
    iterator
    const_iterator
    template<class K>
    iterator
    template<class K>
    find(const key_type& k);
    find(const key_type& k) const;
    find(const K& k);
    const_iterator find(const K& k) const;
    size_type
    template<class K>
    size_type
    bool
    count(const key_type& k) const;
    count(const K& k) const;
    contains(const key_type& k) const;
    template<class K>
    bool           contains(const K& k) const;
    pair<iterator, iterator>
    pair<const_iterator, const_iterator>
    template<class K>
// bucket interface
    size_type bucket_count() const noexcept;
    size_type max_bucket_count() const noexcept;
    size_type bucket_size(size_type n) const;
    size_type bucket(const key_type& k) const;
    local_iterator begin(size_type n);
    const_local_iterator begin(size_type n) const;
    local_iterator end(size_type n);
    const_local_iterator end(size_type n) const;
    const_local_iterator cbegin(size_type n) const;
    const_local_iterator cend(size_type n) const;
// hash policy
    float load_factor() const noexcept;
    float max_load_factor() const noexcept;
    void max_load_factor(float z);
    void rehash(size_type n);
    void reserve(size_type n);
    equal_range(const key_type& k);
    equal_range(const key_type& k) const;
    equal_range(const K& k);
    pair<const_iterator, const_iterator> equal_range(const K& k) const;
    pair<iterator, iterator>
    template<class K>
};
template<class InputIterator,
         class Hash = hash<iter_key_type<InputIterator>>,
         class Pred = equal_to<iter-key-type<InputIterator>>,
         class Allocator = allocator<iter_to_alloc_type<InputIterator>>>
                                     unordered_multimap(InputIterator, InputIterator,
                                             typename see_below::size_type = see_below,
                                             Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                                     -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
                                             Hash, Pred, Allocator>;
         template<ranges::input_range R,
                  class Hash = hash<range_key_type<R>>,
                  class Pred = equal_to<range_key_type<R>>,
                  class Allocator = allocator<range_to_alloc_type<R>>>
                          unordered_multimap(from_range_t, R&&, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                          -> unordered_multimap<range_key_type<R>, range_mapped_type<R>, Hash, Pred, Allocator>;
                  template<class Key, class T, class Hash = hash<Key>,
                           class Pred = equal_to<Key>, class Allocator = allocator<pair<const Key, T>>>
                                   unordered_multimap(initializer_list<pair<Key, T>>,
                                           typename see below::size_type = see below,
                                           Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                                   -> unordered_multimap<Key, T, Hash, Pred, Allocator>;
                           template<class InputIterator, class Allocator>
                           unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Allocator)
                           -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
                                   equal_to<iter-key-type<InputIterator>>, Allocator>;
                           template<class InputIterator, class Allocator>
                           unordered_multimap(InputIterator, InputIterator, Allocator)
                           -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
// Effects: Constructs an empty unordered_multimap using the specified hash function, key equality predicate, and allocator, and using at least n buckets. For the default constructor, the number of buckets is implementation-defined. max_load_factor() returns 1.0. Complexity: Constant.
                                   equal_to<iter_key_type<InputIterator>>, Allocator>;
                           template<class InputIterator, class Hash, class Allocator> unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Hash,
                                   Allocator)
                           -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
                                   equal_to<iter_key_type<InputIterator>>, Allocator>;
                           template<ranges::input_range R, class Allocator>
                           unordered_multimap(from_range_t, R&&, typename see_below::size_type, Allocator)
                           -> unordered_multimap<range_key_type<R>, range_mapped_type<R>, hash<range_key_type<R>>, equal_to<range_key_type<R>>, Allocator>;
                           template<ranges::input_range R, class Allocator>
                           unordered_multimap(from_range_t, R&&, Allocator)
                           -> unordered_multimap<range_key_type<R>, range_mapped_type<R>, hash<range_key_type<R>>, equal_to<range_key_type<R>>, Allocator>;
                           template<ranges::input_range R, class Hash, class Allocator> unordered_multimap(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
                           -> unordered_multimap<range-key-type<R>, range_mapped_type<R>, Hash, equal_to<range_key_type<R>>, Allocator>;
                           template<class Key, class T, class Allocator> unordered_multimap(initializer_list<pair<Key, T>>, typename see below::size_type,
                                   Allocator)
                           -> unordered_multimap<Key, T, hash<Key>, equal_to<Key>, Allocator>;
                           template<class Key, class T, class Allocator>
                           unordered_multimap(initializer_list<pair<Key, T>>, Allocator)
                           -> unordered_multimap<Key, T, hash<Key>, equal_to<Key>, Allocator>;
                           template<class Key, class T, class Hash, class Allocator> unordered_multimap(initializer_list<pair<Key, T>>, typename see below::size_type,
                                   Hash, Allocator)
                           -> unordered_multimap<Key, T, Hash, equal_to<Key>, Allocator>;
}
//  A size_type parameter type in an unordered_multimap deduction guide refers to the size_type member type of the type deduced by the deduction guide.
// 24.5.5.2 Constructors [unord.multimap.cnstr]
                           unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
                                   const hasher& hf = hasher(),
                                   const key_equal& eql = key_equal(),
                                   const allocator_type& a = allocator_type());
template<class InputIterator>
unordered_multimap(InputIterator f, InputIterator l,
                   size_type n = see_below,
                   const hasher& hf = hasher(),
                   const key_equal& eql = key_equal(),
                   const allocator_type& a = allocator_type());
template<container_compatible_range<value_type> R> unordered_multimap(from_range_t, R&& rg,
        size_type n = see_below,
        const hasher& hf = hasher(),
        const key_equal& eql = key_equal(),
        const allocator_type& a = allocator_type());
unordered_multimap(initializer_list<value_type> il,
                   size_type n = see_below,
                   const hasher& hf = hasher(),
                   const key_equal& eql = key_equal(),
                   const allocator_type& a = allocator_type());
// Effects: Constructs an empty unordered_multimap using the specified hash function, key equality predicate, and allocator, and using at least n buckets. If n is not provided, the number of buckets is implementation-defined. Then inserts elements from the range [f,l), rg, or il, respectively. max_- load_factor() returns 1.0.
// Complexity: Average case linear, worst case quadratic.
// 24.5.5.3 Modifiers [unord.multimap.modifiers]
template<class P>
iterator insert(P&& obj);
// Constraints: is_constructible_v<value_type, P&&> is true. Effects: Equivalent to: return emplace(std::forward<P>(obj));
template<class P>
iterator insert(const_iterator hint, P&& obj);
// Constraints: is_constructible_v<value_type, P&&> is true.
Effects: Equivalent to: return emplace_hint(hint, std::forward<P>(obj));
// 24.5.5.4 Erasure [unord.multimap.erasure]
template<class K, class T, class H, class P, class A, class Predicate>
typename unordered_multimap<K, T, H, P, A>::size_type
erase_if(unordered_multimap<K, T, H, P, A>& c, Predicate pred);
// Effects: Equivalent to:
auto original_size = c.size();
for (auto i = c.begin(), last = c.end(); i != last; ) {
    if (pred(*i)) {
        i = c.erase(i);
    } else {
        ++i;
    }
}
return original_size - c.size();
// 24.5.6 Class template unordered_set  [unord.set]
// 24.5.6.1 Overview [unord.set.overview]
//  An unordered_set is an unordered associative container that supports unique keys (an unordered_set contains at most one of each key value) and in which the elements’ keys are the elements themselves. The unordered_set class supports forward iterators.
//  An unordered_set meets all of the requirements of a container (24.2.2.2), of an allocator-aware container (24.2.2.5), of an unordered associative container (24.2.8). It provides the operations described in the preceding requirements table for unique keys; that is, an unordered_set supports the a_uniq operations in that table, not the a_eq operations. For an unordered_set<Key> the key type and the value type are both Key. The iterator and const_iterator types are both constant iterator types. It is unspecified whether they are the same type.
//  Subclause 24.5.6 only describes operations on unordered_set that are not described in one of the requirement tables, or for which there is additional semantic information.
namespace std {
template<class Key,
         class Hash = hash<Key>,
         class Pred = equal_to<Key>,
         class Allocator = allocator<Key>>
class unordered_set {
public:
// types
    using key_type = Key;
    using value_type = Key;
    using hasher = Hash;
    using key_equal = Pred;
    using allocator_type = Allocator;
    using pointer = typename allocator_traits<Allocator>::pointer;
    using const_pointer = typename allocator_traits<Allocator>::const_pointer;
    using reference = value_type&;
    using const_reference = const value_type&;
    using size_type = implementation_defined ; // see 24.2
    using difference_type = implementation_defined ; // see 24.2
    using iterator = implementation_defined ; // see 24.2
    using const_iterator = implementation_defined ; // see 24.2
    using local_iterator = implementation_defined ; // see 24.2
    using const_local_iterator = implementation_defined ; // see 24.2
    using node_type  = unspecified;
    using insert_return_type = insert-return-type<iterator, node_type>;
// 24.5.6.2, construct/copy/destroy unordered_set();
    explicit unordered_set(size_type n,
                           const hasher& hf = hasher(),
                           const key_equal& eql = key_equal(),
                           const allocator_type& a = allocator_type());
    template<class InputIterator>
    unordered_set(InputIterator f, InputIterator l,
                  size_type n = see_below,
                  const hasher& hf = hasher(),
                  const key_equal& eql = key_equal(),
                  const allocator_type& a = allocator_type());
    template<container_compatible_range<value_type> R> unordered_set(from_range_t, R&& rg,
            size_type n = see_below,
            const hasher& hf = hasher(),
            const key_equal& eql = key_equal(),
            const allocator_type& a = allocator_type());
    unordered_set(const unordered_set&);
    unordered_set(unordered_set&&);
    explicit unordered_set(const Allocator&);
    unordered_set(const unordered_set&, const type_identity_t<Allocator>&);
    unordered_set(unordered_set&&, const type_identity_t<Allocator>&);
    unordered_set(initializer_list<value_type> il,
                  size_type n = see below,
                  const hasher& hf = hasher(),
                  const key_equal& eql = key_equal(),
                  const allocator_type& a = allocator_type());
    unordered_set(size_type n, const allocator_type& a)
        : unordered_set(n, hasher(), key_equal(), a) { }
    unordered_set(size_type n, const hasher& hf, const allocator_type& a)
        : unordered_set(n, hf, key_equal(), a) { }
    template<class InputIterator>
    unordered_set(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
        : unordered_set(f, l, n, hasher(), key_equal(), a) { }
    template<class InputIterator>
    unordered_set(InputIterator f, InputIterator l, size_type n, const hasher& hf,
                  const allocator_type& a)
        : unordered_set(f, l, n, hf, key_equal(), a) { }
    unordered_set(initializer_list<value_type> il, size_type n, const allocator_type& a)
        : unordered_set(il, n, hasher(), key_equal(), a) { }
    template<container_compatible_range<value_type> R> unordered_set(from_range_t, R&& rg, size_type n, const allocator_type& a)
        : unordered_set(from_range, std::forward<R>(rg), n, hasher(), key_equal(), a) { } template<container_compatible_range<value_type> R>
    unordered_set(from_range_t, R&& rg, size_type n, const hasher& hf, const allocator_type& a)
        : unordered_set(from_range, std::forward<R>(rg), n, hf, key_equal(), a) { }
    unordered_set(initializer_list<value_type> il, size_type n, const hasher& hf,
                  const allocator_type& a)
        : unordered_set(il, n, hf, key_equal(), a) { } ~unordered_set();
    unordered_set& operator=(const unordered_set&); unordered_set& operator=(unordered_set&&)
    noexcept(allocator_traits<Allocator>::is_always_equal::value &&
             is_nothrow_move_assignable_v<Hash> &&
             is_nothrow_move_assignable_v<Pred>);
    unordered_set& operator=(initializer_list<value_type>);
    allocator_type get_allocator() const noexcept;
// iterators
    iterator       begin() noexcept;
    const_iterator begin() const noexcept;
    iterator       end() noexcept;
    const_iterator end() const noexcept;
    const_iterator cbegin() const noexcept;
    const_iterator cend() const noexcept;
// capacity
    [[nodiscard]] bool empty() const noexcept;
    size_type size() const noexcept;
    size_type max_size() const noexcept;
// modifiers
    template<class... Args> pair<iterator, bool> emplace(Args&&... args);
    template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
    pair<iterator, bool> insert(value_type&& obj);
    iterator insert(const_iterator hint, const value_type& obj);
    iterator insert(const_iterator hint, value_type&& obj);
    template<class InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
    void insert_range(R&& rg);
    void insert(initializer_list<value_type>);
    node_type extract(const_iterator position);
    node_type extract(const key_type& x);
    template<class K> node_type extract(K&& x);
    insert_return_type insert(node_type&& nh);
    iterator           insert(const_iterator hint, node_type&& nh);
    iterator  erase(iterator position);
    iterator  erase(const_iterator position);
    size_type erase(const key_type& k);
    template<class K> size_type erase(K&& x);
    iterator  erase(const_iterator first, const_iterator last);
    void      swap(unordered_set&)
    noexcept(allocator_traits<Allocator>::is_always_equal::value &&
             is_nothrow_swappable_v<Hash> &&
             is_nothrow_swappable_v<Pred>);
    void      clear() noexcept;
    template<class H2, class P2>
    void merge(unordered_set<Key, H2, P2, Allocator>& source);
    template<class H2, class P2>
    void merge(unordered_set<Key, H2, P2, Allocator>&& source);
    template<class H2, class P2>
    void merge(unordered_multiset<Key, H2, P2, Allocator>& source);
    template<class H2, class P2>
    void merge(unordered_multiset<Key, H2, P2, Allocator>&& source);
// observers
    hasher hash_function() const;
    key_equal key_eq() const;
// set operations
    iterator
    const_iterator
    template<class K>
    iterator
    template<class K>
    find(const key_type& k);
    find(const key_type& k) const;
    find(const K& k);
    const_iterator find(const K& k) const;
    size_type        count(const key_type& k) const;
    template<class K>
    size_type      count(const K& k) const;
    bool             contains(const key_type& k) const;
    template<class K>
    bool           contains(const K& k) const;
    pair<iterator, iterator>
    pair<const_iterator, const_iterator>
    template<class K>
// bucket interface
    size_type bucket_count() const noexcept;
    size_type max_bucket_count() const noexcept;
    size_type bucket_size(size_type n) const;
    size_type bucket(const key_type& k) const;
    local_iterator begin(size_type n);
    const_local_iterator begin(size_type n) const;
    local_iterator end(size_type n);
    const_local_iterator end(size_type n) const;
    const_local_iterator cbegin(size_type n) const;
    const_local_iterator cend(size_type n) const;
// hash policy
    float load_factor() const noexcept;
    float max_load_factor() const noexcept;
    void max_load_factor(float z);
    void rehash(size_type n);
    void reserve(size_type n);
};
template<class InputIterator,
         class Hash = hash<iter_value_type<InputIterator>>,
         class Pred = equal_to<iter_value_type<InputIterator>>,
         class Allocator = allocator<iter-value-type<InputIterator>>>
                                     unordered_set(InputIterator, InputIterator, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                                     -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
         template<ranges::input_range R,
                  class Hash = hash<ranges::range_value_t<R>>,
                  class Pred = equal_to<ranges::range_value_t<R>>,
                  class Allocator = allocator<ranges::range_value_t<R>>>
                          unordered_set(from_range_t, R&&, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                          equal_range(const key_type& k);
                  equal_range(const key_type& k) const;
                  equal_range(const K& k);
                  pair<const_iterator, const_iterator> equal_range(const K& k) const;
                  pair<iterator, iterator>
                  template<class K>
                  Effects: Constructs an empty unordered_set using the specified hash function, key equality predicate, and allocator, and using at least n buckets. For the default constructor, the number of buckets is implementation-defined. max_load_factor() returns 1.0.
                  Complexity: Constant.
                  -> unordered_set<ranges::range_value_t<R>, Hash, Pred, Allocator>;
                  template<class T, class Hash = hash<T>,
                           class Pred = equal_to<T>, class Allocator = allocator<T>>
                  unordered_set(initializer_list<T>, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                  -> unordered_set<T, Hash, Pred, Allocator>;
                  template<class InputIterator, class Allocator>
                  unordered_set(InputIterator, InputIterator, typename see below::size_type, Allocator)
                  -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
                                   equal_to<iter_value_type <InputIterator>>, Allocator>;
                  template<class InputIterator, class Hash, class Allocator> unordered_set(InputIterator, InputIterator, typename see below::size_type,
                          Hash, Allocator)
                  -> unordered_set<iter-value-type<InputIterator>, Hash,
                                   equal_to<iter-value-type <InputIterator>>, Allocator>;
                  template<ranges::input_range R, class Allocator>
                  unordered_set(from_range_t, R&&, typename see below::size_type, Allocator)
                  -> unordered_set<ranges::range_value_t<R>, hash<ranges::range_value_t<R>>,
                                   equal_to<ranges::range_value_t<R>>, Allocator>;
                  template<ranges::input_range R, class Allocator>
                  unordered_set(from_range_t, R&&, Allocator)
                  -> unordered_set<ranges::range_value_t<R>, hash<ranges::range_value_t<R>>,
                                   equal_to<ranges::range_value_t<R>>, Allocator>;
                  template<ranges::input_range R, class Hash, class Allocator> unordered_set(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
                  -> unordered_set<ranges::range_value_t<R>, Hash,
                                   equal_to<ranges::range_value_t<R>>, Allocator>;
                  template<class T, class Allocator>
                  unordered_set(initializer_list<T>, typename see below::size_type, Allocator)
                  -> unordered_set<T, hash<T>, equal_to<T>, Allocator>;
                  template<class T, class Hash, class Allocator>
                  unordered_set(initializer_list<T>, typename see below::size_type, Hash, Allocator)
                  -> unordered_set<T, Hash, equal_to<T>, Allocator>;
}
// A size_type parameter type in an unordered_set deduction guide refers to the size_type member type of the type deduced by the deduction guide.
// 24.5.6.2 Constructors [imprd/set/cmstr]
                  unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
                          const hasher& hf = hasher(),
                          const key_equal& eql = key_equal(),
                          const allocator_type& a = allocator_type());
template<class InputIterator>
unordered_set(InputIterator f, InputIterator l,
              size_type n = see below,
              const hasher& hf = hasher(),
              const key_equal& eql = key_equal(),
              const allocator_type& a = allocator_type());
template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
        size_type n = see below,
        const hasher& hf = hasher(),
        const key_equal& eql = key_equal(),
        const allocator_type& a = allocator_type());
unordered_set(initializer_list<value_type> il, size_type n = see below,
              const hasher& hf = hasher(),
              const key_equal& eql = key_equal(),
              const allocator_type& a = allocator_type());
// Effects: Constructs an empty unordered_set using the specified hash function, key equality predicate, and allocator, and using at least n buckets. If n is not provided, the number of buckets is implementation- defined. Then inserts elements from the range [f, l), rg, or il, respectively. max_load_factor() returns 1.0.
// Complexity: Average case linear, worst case quadratic. 24.5.6.3 Erasure
template<class K, class H, class P, class A, class Predicate>
typename unordered_set<K, H, P, A>::size_type
[unord.set.erasure]
erase_if(unordered_set<K, H, P, A>& c, Predicate pred);
Effects: Equivalent to:
auto original_size = c.size();
for (auto i = c.begin(), last = c.end(); i != last; ) {
    if (pred(*i)) {
        i = c.erase(i);
    } else {
        ++i;
    }
}
return original_size - c.size();
// 24.5.7 Class template unordered_multiset [unord.multiset]
// 24.5.7.1 Overview  [unord.multiset.overview]
//  An unordered_multiset is an unordered associative container that supports equivalent keys (an instance of unordered_multiset may contain multiple copies of the same key value) and in which each element’s key is the element itself. The unordered_multiset class supports forward iterators.
//  An unordered_multiset meets all of the requirements of a container (24.2.2.2), of an allocator-aware container (24.2.2.5), and of an unordered associative container (24.2.8). It provides the operations described in the preceding requirements table for equivalent keys; that is, an unordered_multiset supports the a_eq operations in that table, not the a_uniq operations. For an unordered_multiset<Key> the key type and the value type are both Key. The iterator and const_iterator types are both constant iterator types. It is unspecified whether they are the same type.
// Subclause 24.5.7 only describes operations on unordered_multiset that are not described in one of the requirement tables, or for which there is additional semantic information.
namespace std {
template<class Key,
         class Hash = hash<Key>,
         class Pred = equal_to<Key>,
         class Allocator = allocator<Key>>
class unordered_multiset {
public:
// types
    using key_type = Key;
    using value_type = Key;
    using hasher = Hash;
    using key_equal = Pred;
    using allocator_type = Allocator;
    using pointer = typename allocator_traits<Allocator>::pointer;
    using const_pointer = typename allocator_traits<Allocator>::const_pointer;
    using reference = value_type&;
    using const_reference = const value_type&;
    using size_type = implementation_defined ; // see 24.2
    using difference_type = implementation_defined ; // see 24.2
    using iterator = implementation_defined ; // see 24.2
    using const_iterator = implementation_defined ; // see 24.2
    using local_iterator  = implementation_defined ; // see 24.2
    using const_local_iterator  = implementation_defined ; // see 24.2
    using node_type = unspecified ;
// 24.5.7.2, construct/copy/destroy unordered_multiset();
    explicit unordered_multiset(size_type n,
                                const hasher& hf = hasher(),
                                const key_equal& eql = key_equal(),
                                const allocator_type& a = allocator_type());
    template<class InputIterator>
    unordered_multiset(InputIterator f, InputIterator l,
                       size_type n = see below,
                       const hasher& hf = hasher(),
                       const key_equal& eql = key_equal(),
                       const allocator_type& a = allocator_type());
    template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
            size_type n = see_below,
            const hasher& hf = hasher(),
            const key_equal& eql = key_equal(),
            const allocator_type& a = allocator_type());
    unordered_multiset(const unordered_multiset&);
    unordered_multiset(unordered_multiset&&);
    explicit unordered_multiset(const Allocator&);
    unordered_multiset(const unordered_multiset&, const type_identity_t<Allocator>&);
    unordered_multiset(unordered_multiset&&, const type_identity_t<Allocator>&);
    unordered_multiset(initializer_list<value_type> il,
                       size_type n = see_below,
                       const hasher& hf = hasher(),
                       const key_equal& eql = key_equal(),
                       const allocator_type& a = allocator_type());
    unordered_multiset(size_type n, const allocator_type& a)
        : unordered_multiset(n, hasher(), key_equal(), a) { }
    unordered_multiset(size_type n, const hasher& hf, const allocator_type& a)
        : unordered_multiset(n, hf, key_equal(), a) { }
    template<class InputIterator>
    unordered_multiset(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
        : unordered_multiset(f, l, n, hasher(), key_equal(), a) { }
    template<class InputIterator>
    unordered_multiset(InputIterator f, InputIterator l, size_type n, const hasher& hf,
                       const allocator_type& a)
        : unordered_multiset(f, l, n, hf, key_equal(), a) { } template<container_compatible_range<value_type> R>
    unordered_multiset(from_range_t, R&& rg, size_type n, const allocator_type& a)
        : unordered_multiset(from_range, std::forward<R>(rg),
                             n, hasher(), key_equal(), a) { }
    template<container-compatible-range<value_type> R> unordered_multiset(from_range_t, R&& rg, size_type n, const hasher& hf,
            const allocator_type& a)
        : unordered_multiset(from_range, std::forward<R>(rg), n, hf, key_equal(), a) { }
    unordered_multiset(initializer_list<value_type> il, size_type n, const allocator_type& a)
        : unordered_multiset(il, n, hasher(), key_equal(), a) { }
    unordered_multiset(initializer_list<value_type> il, size_type n, const hasher& hf,
                       const allocator_type& a)
        : unordered_multiset(il, n, hf, key_equal(), a) { } ~unordered_multiset();
    unordered_multiset& operator=(const unordered_multiset&); unordered_multiset& operator=(unordered_multiset&&)
    noexcept(allocator_traits<Allocator>::is_always_equal::value &&
             is_nothrow_move_assignable_v<Hash> &&
             is_nothrow_move_assignable_v<Pred>);
    unordered_multiset& operator=(initializer_list<value_type>);
    allocator_type get_allocator() const noexcept;
// iterators
    iterator       begin() noexcept;
    const_iterator begin() const noexcept;
    iterator       end() noexcept;
    const_iterator end() const noexcept;
    const_iterator cbegin() const noexcept;
    const_iterator cend() const noexcept;
// capacity
    [[nodiscard]] bool empty() const noexcept;
    size_type size() const noexcept;
    size_type max_size() const noexcept;
// modifiers
    template<class... Args> iterator emplace(Args&&... args);
    template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
    iterator insert(value_type&& obj);
    iterator insert(const_iterator hint, const value_type& obj);
    iterator insert(const_iterator hint, value_type&& obj);
    template<class InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
    void insert_range(R&& rg);
    void insert(initializer_list<value_type>);
    node_type extract(const_iterator position);
    node_type extract(const key_type& x);
    template<class K> node_type extract(K&& x);
    iterator insert(node_type&& nh);
    iterator insert(const_iterator hint, node_type&& nh);
    iterator  erase(iterator position);
    iterator  erase(const_iterator position);
    size_type erase(const key_type& k);
    template<class K> size_type erase(K&& x);
    iterator  erase(const_iterator first, const_iterator last);
    void      swap(unordered_multiset&)
    noexcept(allocator_traits<Allocator>::is_always_equal::value &&
             is_nothrow_swappable_v<Hash> &&
             is_nothrow_swappable_v<Pred>);
    void      clear() noexcept;
    template<class H2, class P2>
    void merge(unordered_multiset<Key, H2, P2, Allocator>& source);
    template<class H2, class P2>
    void merge(unordered_multiset<Key, H2, P2, Allocator>&& source);
    template<class H2, class P2>
    void merge(unordered_set<Key, H2, P2, Allocator>& source);
    template<class H2, class P2>
    void merge(unordered_set<Key, H2, P2, Allocator>&& source);
// observers
    hasher hash_function() const;
    key_equal key_eq() const;
// set operations
    iterator
    const_iterator
    template<class K>
    iterator
    template<class K>
    find(const key_type& k);
    find(const key_type& k) const;
    find(const K& k);
    const_iterator find(const K& k) const;
    size_type        count(const key_type& k) const;
    template<class K>
    size_type      count(const K& k) const;
    bool             contains(const key_type& k) const;
    template<class K>
    bool           contains(const K& k) const;
    pair<iterator, iterator>
    pair<const_iterator, const_iterator>
    template<class K>
// bucket interface
    size_type bucket_count() const noexcept;
    size_type max_bucket_count() const noexcept;
    size_type bucket_size(size_type n) const;
    size_type bucket(const key_type& k) const;
    local_iterator begin(size_type n);
    const_local_iterator begin(size_type n) const;
    local_iterator end(size_type n);
    const_local_iterator end(size_type n) const;
    const_local_iterator cbegin(size_type n) const;
    const_local_iterator cend(size_type n) const;
// hash policy
    float load_factor() const noexcept;
    float max_load_factor() const noexcept;
    void max_load_factor(float z);
    void rehash(size_type n);
    void reserve(size_type n);
};
template<class InputIterator,
         class Hash = hash<iter_value_type<InputIterator>>,
         class Pred = equal_to<iter_value_type<InputIterator>>,
         class Allocator = allocator<iter-value-type<InputIterator>>>
                                     unordered_multiset(InputIterator, InputIterator, see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                                     -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
         template<ranges::input_range R,
                  class Hash = hash<ranges::range_value_t<R>>,
                  class Pred = equal_to<ranges::range_value_t<R>>,
                  class Allocator = allocator<ranges::range_value_t<R>>>
                          unordered_multiset(from_range_t, R&&, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                          equal_range(const key_type& k);
                  equal_range(const key_type& k) const;
                  equal_range(const K& k);
                  pair<const_iterator, const_iterator> equal_range(const K& k) const;
                  pair<iterator, iterator>
                  template<class K>
// Effects: Constructs an empty unordered_multiset using the specified hash function, key equality predicate, and allocator, and using at least n buckets. For the default constructor, the number of buckets is implementation-defined. max_load_factor() returns 1.0. Complexity: Constant.
                  -> unordered_multiset<ranges::range_value_t<R>, Hash, Pred, Allocator>;
                  template<class T, class Hash = hash<T>,
                           class Pred = equal_to<T>, class Allocator = allocator<T>>
                  unordered_multiset(initializer_list<T>, typename see below::size_type = see below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
                  -> unordered_multiset<T, Hash, Pred, Allocator>;
                  template<class InputIterator, class Allocator>
                  unordered_multiset(InputIterator, InputIterator, typename see below::size_type, Allocator)
                  -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
                                        equal_to<iter-value-type <InputIterator>>, Allocator>;
                  template<class InputIterator, class Hash, class Allocator> unordered_multiset(InputIterator, InputIterator, typename see below::size_type,
                          Hash, Allocator)
                  -> unordered_multiset<iter-value-type<InputIterator>, Hash,
                                        equal_to<iter-value-type <InputIterator>>, Allocator>;
                  template<ranges::input_range R, class Allocator>
                  unordered_multiset(from_range_t, R&&, typename see_below::size_type, Allocator)
                  -> unordered_multiset<ranges::range_value_t<R>, hash<ranges::range_value_t<R>>,
                                        equal_to<ranges::range_value_t<R>>, Allocator>;
                  template<ranges::input_range R, class Allocator>
                  unordered_multiset(from_range_t, R&&, Allocator)
                  -> unordered_multiset<ranges::range_value_t<R>, hash<ranges::range_value_t<R>>,
                                        equal_to<ranges::range_value_t<R>>, Allocator>;
                  template<ranges::input_range R, class Hash, class Allocator> unordered_multiset(from_range_t, R&&, typename see_below::size_type, Hash, Allocator)
                  -> unordered_multiset<ranges::range_value_t<R>, Hash, equal_to<ranges::range_value_t<R>>,
                                        Allocator>;
                  template<class T, class Allocator>
                  unordered_multiset(initializer_list<T>, typename see_below::size_type, Allocator)
                  -> unordered_multiset<T, hash<T>, equal_to<T>, Allocator>;
                  template<class T, class Hash, class Allocator>
                  unordered_multiset(initializer_list<T>, typename see_below::size_type, Hash, Allocator)
                  -> unordered_multiset<T, Hash, equal_to<T>, Allocator>;
}
//  A size_type parameter type in an unordered_multiset deduction guide refers to the size_type member type of the type deduced by the deduction guide.
// 24.5.7.2 Constructors [unord.multiset.cnstr]
                  unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
                          const hasher& hf = hasher(),
                          const key_equal& eql = key_equal(),
                          const allocator_type& a = allocator_type());
template<class InputIterator>
unordered_multiset(InputIterator f, InputIterator l,
                   size_type n = see_below,
                   const hasher& hf = hasher(),
                   const key_equal& eql = key_equal(),
                   const allocator_type& a = allocator_type());
template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
        size_type n = see_below,
        const hasher& hf = hasher(),
        const key_equal& eql = key_equal(),
        const allocator_type& a = allocator_type());
unordered_multiset(initializer_list<value_type> il, size_type n = see_below,
                   const hasher& hf = hasher(),
                   const key_equal& eql = key_equal(),
                   const allocator_type& a = allocator_type());
// Effects: Constructs an empty unordered_multiset using the specified hash function, key equality predicate, and allocator, and using at least n buckets. If n is not provided, the number of buckets is implementation-defined. Then inserts elements from the range [f,l), rg, or il, respectively. max_- load_factor() returns 1.0.
// Complexity: Average case linear, worst case quadratic.
// 24.5.7.3 Erasure [unord.multiset.erasrure]
template<class K, class H, class P, class A, class Predicate>
typename unordered_multiset<K, H, P, A>::size_type
erase_if(unordered_multiset<K, H, P, A>& c, Predicate pred);
// Effects: Equivalent to:
auto original_size = c.size();
for (auto i = c.begin(), last = c.end(); i != last; ) {
    if (pred(*i)) {
        i = c.erase(i);
    } else {
        ++i;
    }
}
return original_size - c.size();

int main() {
    cout  <<  n4910 << endl;
    return EXIT_SUCCESS;
}

編纂・実行結果(compile and go)

bash
$ clang++ p925.cpp -std=03 -o p925l -I. -Wall
p925.cpp:1:1: error: expected unqualified-id
```c++:p925.cpp
^
In file included from p925.cpp:11:
In file included from ./N4910.h:11:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/atomic:38:
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support \
 ^
p925.cpp:23:24: error: expected unqualified-id
                class T,
                       ^
p925.cpp:29:24: error: expected unqualified-id
                class T,
                       ^
p925.cpp:35:32: error: no template named 'unordered_map'
         bool operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& a,
                               ^
p925.cpp:36:32: error: no template named 'unordered_map'
                         const unordered_map<Key, T, Hash, Pred, Alloc>& b);
                               ^
p925.cpp:38:32: error: no template named 'unordered_multimap'
         bool operator==(const unordered_multimap<Key, T, Hash, Pred, Alloc>& a,
                               ^
p925.cpp:39:32: error: no template named 'unordered_multimap'
                         const unordered_multimap<Key, T, Hash, Pred, Alloc>& b);
                               ^
p925.cpp:41:20: error: no template named 'unordered_map'
         void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
                   ^
p925.cpp:42:20: error: no template named 'unordered_map'
                   unordered_map<Key, T, Hash, Pred, Alloc>& y)
                   ^
p925.cpp:42:64: error: expected ';' at end of declaration
                   unordered_map<Key, T, Hash, Pred, Alloc>& y)
                                                               ^
                                                               ;
p925.cpp:43:12: error: C++ requires a type specifier for all declarations
           noexcept(noexcept(x.swap(y)));
           ^
p925.cpp:43:30: error: use of undeclared identifier 'x'
           noexcept(noexcept(x.swap(y)));
                             ^
p925.cpp:43:37: error: use of undeclared identifier 'y'
           noexcept(noexcept(x.swap(y)));
                                    ^
p925.cpp:45:20: error: no template named 'unordered_multimap'
         void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
                   ^
p925.cpp:46:20: error: no template named 'unordered_multimap'
                   unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
                   ^
p925.cpp:46:69: error: expected ';' at end of declaration
                   unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
                                                                    ^
                                                                    ;
p925.cpp:47:12: error: C++ requires a type specifier for all declarations
           noexcept(noexcept(x.swap(y)));
           ^
p925.cpp:47:30: error: use of undeclared identifier 'x'
           noexcept(noexcept(x.swap(y)));
                             ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
$ clang++ p925.cpp -std=2b -o p925l -I. -Wall
p925.cpp:1:1: error: expected unqualified-id
```c++:p925.cpp
^
p925.cpp:23:24: error: expected unqualified-id
                class T,
                       ^
p925.cpp:29:24: error: expected unqualified-id
                class T,
                       ^
p925.cpp:54:3: error: extraneous closing brace ('}')
} }
  ^
p925.cpp:62:26: error: use of undeclared identifier 'polymorphic_allocator'
                         polymorphic_allocator<pair<const Key, T>>>;
                         ^
p925.cpp:69:33: error: use of undeclared identifier 'polymorphic_allocator'
                                polymorphic_allocator<pair<const Key, T>>>;
                                ^
p925.cpp:75:23: error: expected unqualified-id
           class Hash = hash<Key>,
                      ^
p925.cpp:80:23: error: expected unqualified-id
           class Hash = hash<Key>,
                      ^
p925.cpp:85:27: error: no template named 'unordered_set'; did you mean 'unordered_map'?
    bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a,
                          ^~~~~~~~~~~~~
                          unordered_map
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:102:11: note: 'unordered_map' declared here
    class unordered_map
          ^
p925.cpp:86:27: error: no template named 'unordered_set'; did you mean 'unordered_map'?
                    const unordered_set<Key, Hash, Pred, Alloc>& b);
                          ^~~~~~~~~~~~~
                          unordered_map
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:102:11: note: 'unordered_map' declared here
    class unordered_map
          ^
p925.cpp:88:27: error: no template named 'unordered_multiset'; did you mean 'unordered_multimap'?
    bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a,
                          ^~~~~~~~~~~~~~~~~~
                          unordered_multimap
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:1249:11: note: 'unordered_multimap' declared here
    class unordered_multimap
          ^
p925.cpp:89:27: error: no template named 'unordered_multiset'; did you mean 'unordered_multimap'?
                    const unordered_multiset<Key, Hash, Pred, Alloc>& b);
                          ^~~~~~~~~~~~~~~~~~
                          unordered_multimap
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:1249:11: note: 'unordered_multimap' declared here
    class unordered_multimap
          ^
p925.cpp:91:15: error: no template named 'unordered_set'; did you mean 'unordered_map'?
    void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
              ^~~~~~~~~~~~~
              unordered_map
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:102:11: note: 'unordered_map' declared here
    class unordered_map
          ^
p925.cpp:92:15: error: no template named 'unordered_set'; did you mean 'unordered_map'?
              unordered_set<Key, Hash, Pred, Alloc>& y)
              ^~~~~~~~~~~~~
              unordered_map
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:102:11: note: 'unordered_map' declared here
    class unordered_map
          ^
p925.cpp:95:15: error: no template named 'unordered_multiset'; did you mean 'unordered_multimap'?
    void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
              ^~~~~~~~~~~~~~~~~~
              unordered_multimap
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:1249:11: note: 'unordered_multimap' declared here
    class unordered_multimap
          ^
p925.cpp:96:15: error: no template named 'unordered_multiset'; did you mean 'unordered_multimap'?
              unordered_multiset<Key, Hash, Pred, Alloc>& y)
              ^~~~~~~~~~~~~~~~~~
              unordered_multimap
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:1249:11: note: 'unordered_multimap' declared here
    class unordered_multimap
          ^
p925.cpp:99:14: error: no template named 'unordered_set'; did you mean 'unordered_map'?
    typename unordered_set<K, H, P, A>::size_type
             ^~~~~~~~~~~~~
             unordered_map
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:102:11: note: 'unordered_map' declared here
    class unordered_map
          ^
p925.cpp:100:16: error: no template named 'unordered_set'; did you mean 'unordered_map'?
      erase_if(unordered_set<K, H, P, A>& c, Predicate pred);
               ^~~~~~~~~~~~~
               unordered_map
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:102:11: note: 'unordered_map' declared here
    class unordered_map
          ^
p925.cpp:102:14: error: no template named 'unordered_multiset'; did you mean 'unordered_multimap'?
    typename unordered_multiset<K, H, P, A>::size_type
             ^~~~~~~~~~~~~~~~~~
             unordered_multimap
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/unordered_map.h:1249:11: note: 'unordered_multimap' declared here
    class unordered_multimap
          ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

$ g++ p925.cpp -std=03 -o p925g -I. -Wall
p925.cpp:1:1: error: stray '`' in program
    1 | ```c++:p925.cpp
      | ^
p925.cpp:1:2: error: stray '`' in program
    1 | ```c++:p925.cpp
      |  ^
p925.cpp:1:3: error: stray '`' in program
    1 | ```c++:p925.cpp
      |   ^
In file included from /usr/local/include/c++/12.1.0/atomic:38,
                 from N4910.h:11,
                 from p925.cpp:11:
/usr/local/include/c++/12.1.0/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
   32 | #error This file requires compiler and library support \
      |  ^~~~~
p925.cpp:43:12: warning: identifier 'noexcept' is a keyword in C++11 [-Wc++11-compat]
   43 |            noexcept(noexcept(x.swap(y)));
      |            ^~~~~~~~
p925.cpp:337:18: error: stray '\' in program
  337 | template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
      |                  ^
p925.cpp:897:252: error: too many decimal points in number
  897 | efault constructor, the number of buckets is implementation-defined. max_load_factor() returns 1.0.
      |                                                                                                ^~~~

p925.cpp:1:4: error: 'c' does not name a type
    1 | ```c++:p925.cpp
      |    ^
p925.cpp:23:24: error: expected unqualified-id before ',' token
   23 |                 class T,
      |                        ^
p925.cpp:24:17: error: expected unqualified-id before 'class'
   24 |                 class Hash = hash<Key>,
      |                 ^~~~~
p925.cpp:29:24: error: expected unqualified-id before ',' token
   29 |                 class T,
      |                        ^
p925.cpp:30:17: error: expected unqualified-id before 'class'
   30 |                 class Hash = hash<Key>,
      |                 ^~~~~
p925.cpp:35:32: error: 'unordered_map' does not name a type
   35 |          bool operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& a,
      |                                ^~~~~~~~~~~~~
p925.cpp:35:45: error: expected ',' or '...' before '<' token
   35 |          bool operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& a,
      |                                             ^
p925.cpp:35:15: error: 'bool std::operator==(int)' must have an argument of class or enumerated type
   35 |          bool operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& a,
      |               ^~~~~~~~
p925.cpp:38:32: error: 'unordered_multimap' does not name a type
   38 |          bool operator==(const unordered_multimap<Key, T, Hash, Pred, Alloc>& a,
      |                                ^~~~~~~~~~~~~~~~~~
p925.cpp:38:50: error: expected ',' or '...' before '<' token
   38 |          bool operator==(const unordered_multimap<Key, T, Hash, Pred, Alloc>& a,
      |                                                  ^
p925.cpp:38:15: error: 'bool std::operator==(int)' must have an argument of class or enumerated type
   38 |          bool operator==(const unordered_multimap<Key, T, Hash, Pred, Alloc>& a,
      |               ^~~~~~~~
p925.cpp:41:15: error: variable or field 'swap' declared void
   41 |          void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
      |               ^~~~
p925.cpp:41:20: error: 'unordered_map' was not declared in this scope
   41 |          void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
      |                    ^~~~~~~~~~~~~
p925.cpp:41:20: note: 'std::unordered_map' is only available from C++11 onwards
p925.cpp:41:37: error: expected primary-expression before ',' token
   41 |          void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
      |                                     ^
p925.cpp:41:40: error: expected primary-expression before ',' token
   41 |          void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
      |                                        ^
p925.cpp:41:46: error: expected primary-expression before ',' token
   41 |          void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
      |                                              ^
p925.cpp:41:52: error: expected primary-expression before ',' token
   41 |          void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
      |                                                    ^
p925.cpp:41:59: error: expected primary-expression before '>' token
   41 |          void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
      |                                                           ^
p925.cpp:41:62: error: 'x' was not declared in this scope
   41 |          void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
      |                                                              ^
p925.cpp:42:20: error: 'unordered_map' was not declared in this scope
   42 |                    unordered_map<Key, T, Hash, Pred, Alloc>& y)
      |                    ^~~~~~~~~~~~~
p925.cpp:42:20: note: 'std::unordered_map' is only available from C++11 onwards
p925.cpp:42:37: error: expected primary-expression before ',' token
   42 |                    unordered_map<Key, T, Hash, Pred, Alloc>& y)
      |                                     ^
p925.cpp:42:40: error: expected primary-expression before ',' token
   42 |                    unordered_map<Key, T, Hash, Pred, Alloc>& y)
      |                                        ^
p925.cpp:42:46: error: expected primary-expression before ',' token
   42 |                    unordered_map<Key, T, Hash, Pred, Alloc>& y)
      |                                              ^
p925.cpp:42:52: error: expected primary-expression before ',' token
   42 |                    unordered_map<Key, T, Hash, Pred, Alloc>& y)
      |                                                    ^
p925.cpp:42:59: error: expected primary-expression before '>' token
   42 |                    unordered_map<Key, T, Hash, Pred, Alloc>& y)
      |                                                           ^
p925.cpp:42:62: error: 'y' was not declared in this scope
   42 |                    unordered_map<Key, T, Hash, Pred, Alloc>& y)
      |                                                              ^
p925.cpp:45:15: error: variable or field 'swap' declared void
   45 |          void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
      |               ^~~~
p925.cpp:45:20: error: 'unordered_multimap' was not declared in this scope
   45 |          void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
      |                    ^~~~~~~~~~~~~~~~~~
p925.cpp:45:20: note: 'std::unordered_multimap' is only available from C++11 onwards
p925.cpp:45:42: error: expected primary-expression before ',' token
   45 |          void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
      |                                          ^
p925.cpp:45:45: error: expected primary-expression before ',' token
   45 |          void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
      |                                             ^
p925.cpp:45:51: error: expected primary-expression before ',' token
   45 |          void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
      |                                                   ^
p925.cpp:45:57: error: expected primary-expression before ',' token
   45 |          void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
      |                                                         ^
p925.cpp:45:64: error: expected primary-expression before '>' token
   45 |          void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
      |                                                                ^
p925.cpp:45:67: error: 'x' was not declared in this scope
   45 |          void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
      |                                                                   ^
p925.cpp:46:20: error: 'unordered_multimap' was not declared in this scope
   46 |                    unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
      |                    ^~~~~~~~~~~~~~~~~~
p925.cpp:46:20: note: 'std::unordered_multimap' is only available from C++11 onwards
p925.cpp:46:42: error: expected primary-expression before ',' token
   46 |                    unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
      |                                          ^
p925.cpp:46:45: error: expected primary-expression before ',' token
   46 |                    unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
      |                                             ^
p925.cpp:46:51: error: expected primary-expression before ',' token
   46 |                    unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
      |                                                   ^
p925.cpp:46:57: error: expected primary-expression before ',' token
   46 |                    unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
      |                                                         ^
p925.cpp:46:64: error: expected primary-expression before '>' token
   46 |                    unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
      |                                                                ^
p925.cpp:46:67: error: 'y' was not declared in this scope
   46 |                    unordered_multimap<Key, T, Hash, Pred, Alloc>& y)
      |                                                                   ^
p925.cpp:49:19: error: expected nested-name-specifier before 'unordered_map'
   49 |          typename unordered_map<K, T, H, P, A>::size_type
      |                   ^~~~~~~~~~~~~
p925.cpp:49:32: error: expected initializer before '<' token
   49 |          typename unordered_map<K, T, H, P, A>::size_type
      |                                ^
p925.cpp:52:19: error: expected nested-name-specifier before 'unordered_multimap'
   52 |          typename unordered_multimap<K, T, H, P, A>::size_type
      |                   ^~~~~~~~~~~~~~~~~~
p925.cpp:52:37: error: expected initializer before '<' token
   52 |          typename unordered_multimap<K, T, H, P, A>::size_type
      |                                     ^
p925.cpp:54:3: error: expected declaration before '}' token
   54 | } }
      |   ^
p925.cpp:58:25: error: 'hash' does not name a type
   58 |            class Hash = hash<Key>,
      |                         ^~~~
p925.cpp:58:29: error: expected '>' before '<' token
   58 |            class Hash = hash<Key>,
      |                             ^
p925.cpp:62:68: error: expected unqualified-id before ';' token
   62 |                          polymorphic_allocator<pair<const Key, T>>>;
      |                                                                    ^
p925.cpp:65:25: error: 'hash' does not name a type
   65 |            class Hash = hash<Key>,
      |                         ^~~~
p925.cpp:65:29: error: expected '>' before '<' token
   65 |            class Hash = hash<Key>,
      |                             ^
p925.cpp:69:75: error: expected unqualified-id before ';' token
   69 |                                 polymorphic_allocator<pair<const Key, T>>>;
      |                                                                           ^
p925.cpp:75:23: error: expected unqualified-id before '=' token
   75 |            class Hash = hash<Key>,
      |                       ^
p925.cpp:80:23: error: expected unqualified-id before '=' token
   80 |            class Hash = hash<Key>,
      |                       ^
p925.cpp:85:27: error: 'unordered_set' does not name a type
   85 |     bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a,
      |                           ^~~~~~~~~~~~~
p925.cpp:85:40: error: expected ',' or '...' before '<' token
   85 |     bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a,
      |                                        ^
p925.cpp:85:10: error: 'bool pmr::std::operator==(int)' must have an argument of class or enumerated type
   85 |     bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a,
      |          ^~~~~~~~
p925.cpp:88:27: error: 'unordered_multiset' does not name a type
   88 |     bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a,
      |                           ^~~~~~~~~~~~~~~~~~
p925.cpp:88:45: error: expected ',' or '...' before '<' token
   88 |     bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a,
      |                                             ^
p925.cpp:88:10: error: 'bool pmr::std::operator==(int)' must have an argument of class or enumerated type
   88 |     bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a,
      |          ^~~~~~~~
p925.cpp:91:10: error: variable or field 'swap' declared void
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |          ^~~~
p925.cpp:91:15: error: 'unordered_set' was not declared in this scope
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |               ^~~~~~~~~~~~~
p925.cpp:91:15: note: 'std::unordered_set' is only available from C++11 onwards
p925.cpp:91:32: error: expected primary-expression before ',' token
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                ^
p925.cpp:91:38: error: expected primary-expression before ',' token
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                      ^
p925.cpp:91:44: error: expected primary-expression before ',' token
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                            ^
p925.cpp:91:51: error: expected primary-expression before '>' token
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                                   ^
p925.cpp:91:54: error: 'x' was not declared in this scope
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                                      ^
p925.cpp:92:15: error: 'unordered_set' was not declared in this scope
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |               ^~~~~~~~~~~~~
p925.cpp:92:15: note: 'std::unordered_set' is only available from C++11 onwards
p925.cpp:92:32: error: expected primary-expression before ',' token
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                ^
p925.cpp:92:38: error: expected primary-expression before ',' token
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                      ^
p925.cpp:92:44: error: expected primary-expression before ',' token
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                            ^
p925.cpp:92:51: error: expected primary-expression before '>' token
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                                   ^
p925.cpp:92:54: error: 'y' was not declared in this scope; did you mean 'yn'?
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                                      ^
      |                                                      yn
p925.cpp:95:10: error: variable or field 'swap' declared void
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |          ^~~~
p925.cpp:95:15: error: 'unordered_multiset' was not declared in this scope
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |               ^~~~~~~~~~~~~~~~~~
p925.cpp:95:15: note: 'std::unordered_multiset' is only available from C++11 onwards
p925.cpp:95:37: error: expected primary-expression before ',' token
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                     ^
p925.cpp:95:43: error: expected primary-expression before ',' token
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                           ^
p925.cpp:95:49: error: expected primary-expression before ',' token
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                                 ^
p925.cpp:95:56: error: expected primary-expression before '>' token
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                                        ^
p925.cpp:95:59: error: 'x' was not declared in this scope
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                                           ^
p925.cpp:96:15: error: 'unordered_multiset' was not declared in this scope
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |               ^~~~~~~~~~~~~~~~~~
p925.cpp:96:15: note: 'std::unordered_multiset' is only available from C++11 onwards
p925.cpp:96:37: error: expected primary-expression before ',' token
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                     ^
p925.cpp:96:43: error: expected primary-expression before ',' token
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                           ^
p925.cpp:96:49: error: expected primary-expression before ',' token
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                                 ^
p925.cpp:96:56: error: expected primary-expression before '>' token
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                                        ^
p925.cpp:96:59: error: 'y' was not declared in this scope; did you mean 'yn'?
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                                           ^
      |                                                           yn
p925.cpp:99:14: error: expected nested-name-specifier before 'unordered_set'
   99 |     typename unordered_set<K, H, P, A>::size_type
      |              ^~~~~~~~~~~~~
p925.cpp:99:27: error: expected initializer before '<' token
   99 |     typename unordered_set<K, H, P, A>::size_type
      |                           ^
p925.cpp:102:14: error: expected nested-name-specifier before 'unordered_multiset'
  102 |     typename unordered_multiset<K, H, P, A>::size_type
      |              ^~~~~~~~~~~~~~~~~~
p925.cpp:102:32: error: expected initializer before '<' token
  102 |     typename unordered_multiset<K, H, P, A>::size_type
      |                                ^
p925.cpp:106:25: error: 'hash' does not name a type; did you mean 'Hash'?
  106 |            class Hash = hash<Key>,
      |                         ^~~~
      |                         Hash
p925.cpp:106:29: error: expected '>' before '<' token
  106 |            class Hash = hash<Key>,
      |                             ^
p925.cpp:109:73: error: expected unqualified-id before ';' token
  109 |                                              polymorphic_allocator<Key>>;
      |                                                                         ^
p925.cpp:111:25: error: 'hash' does not name a type; did you mean 'Hash'?
  111 |            class Hash = hash<Key>,
      |                         ^~~~
      |                         Hash
p925.cpp:111:29: error: expected '>' before '<' token
  111 |            class Hash = hash<Key>,
      |                             ^
p925.cpp:114:90: error: expected unqualified-id before ';' token
  114 |                                                               polymorphic_allocator<Key>>;
      |                                                                                          ^
p925.cpp:120:1: error: 'tables' does not name a type
  120 | tables, or for which there is additional semantic information.
      | ^~~~~~
p925.cpp:131:9: error: expected nested-name-specifier before 'key_type'
  131 |   using key_type = Key;
      |         ^~~~~~~~
p925.cpp:132:9: error: expected nested-name-specifier before 'mapped_type'
  132 |   using mapped_type = T;
      |         ^~~~~~~~~~~
p925.cpp:133:9: error: expected nested-name-specifier before 'value_type'
  133 |   using value_type = pair<const Key, T>;
      |         ^~~~~~~~~~
p925.cpp:134:9: error: expected nested-name-specifier before 'hasher'
  134 |   using hasher = Hash;
      |         ^~~~~~
p925.cpp:135:9: error: expected nested-name-specifier before 'key_equal'
  135 |   using key_equal = Pred;
      |         ^~~~~~~~~
p925.cpp:136:9: error: expected nested-name-specifier before 'allocator_type'
  136 |   using allocator_type = Allocator;
      |         ^~~~~~~~~~~~~~
p925.cpp:137:9: error: expected nested-name-specifier before 'pointer'
  137 |   using pointer = typename allocator_traits<Allocator>::pointer;
      |         ^~~~~~~
p925.cpp:138:9: error: expected nested-name-specifier before 'const_pointer'
  138 |   using const_pointer = typename allocator_traits<Allocator>::const_pointer;
      |         ^~~~~~~~~~~~~
p925.cpp:139:9: error: expected nested-name-specifier before 'reference'
  139 |   using reference  = value_type&;
      |         ^~~~~~~~~
p925.cpp:140:9: error: expected nested-name-specifier before 'const_reference'
  140 |   using const_reference = const value_type&;
      |         ^~~~~~~~~~~~~~~
p925.cpp:141:9: error: expected nested-name-specifier before 'size_type'
  141 |   using size_type = implementation_defined ; // see 24.2
      |         ^~~~~~~~~
p925.cpp:142:9: error: expected nested-name-specifier before 'difference_type'
  142 |   using difference_type = implementation_defined ; // see 24.2
      |         ^~~~~~~~~~~~~~~
p925.cpp:143:9: error: expected nested-name-specifier before 'iterator'
  143 |   using iterator = implementation_defined ; // see 24.2
      |         ^~~~~~~~
p925.cpp:144:9: error: expected nested-name-specifier before 'const_iterator'
  144 |   using const_iterator = implementation_defined ; // see 24.2
      |         ^~~~~~~~~~~~~~
p925.cpp:145:9: error: expected nested-name-specifier before 'local_iterator'
  145 |   using local_iterator = implementation_defined ; // see 24.2
      |         ^~~~~~~~~~~~~~
p925.cpp:146:9: error: expected nested-name-specifier before 'const_local_iterator'
  146 |   using const_local_iterator = implementation_defined ; // see 24.2
      |         ^~~~~~~~~~~~~~~~~~~~
p925.cpp:147:9: error: expected nested-name-specifier before 'node_type'
  147 |   using node_type = unspecified;
      |         ^~~~~~~~~
p925.cpp:148:9: error: expected nested-name-specifier before 'insert_return_type'
  148 |   using insert_return_type = insert-return-type<iterator, node_type>; // // 24.5.4.2, construct/copy/destroy
      |         ^~~~~~~~~~~~~~~~~~
p925.cpp:150:33: error: expected ')' before 'n'
  150 | explicit unordered_map(size_type n,
      |                       ~         ^~
      |                                 )
p925.cpp:155:49: error: 'size_type' has not been declared
  155 | unordered_map(InputIterator f, InputIterator l, size_type n = see below,
      |                                                 ^~~~~~~~~
p925.cpp:156:23: error: 'hasher' does not name a type; did you mean 'Hash'?
  156 |                 const hasher& hf = hasher(),
      |                       ^~~~~~
      |                       Hash
p925.cpp:157:23: error: 'key_equal' does not name a type
  157 |                 const key_equal& eql = key_equal(),
      |                       ^~~~~~~~~
p925.cpp:158:23: error: 'allocator_type' does not name a type
  158 |                 const allocator_type& a = allocator_type());
      |                       ^~~~~~~~~~~~~~
p925.cpp:159:10: error: 'container' has not been declared
  159 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg, size_type n = see below,
      |          ^~~~~~~~~
p925.cpp:159:19: error: expected '>' before '-' token
  159 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg, size_type n = see below,
      |                   ^
p925.cpp:159:78: error: expected ')' before ',' token
  159 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg, size_type n = see below,
      |                                                                 ~            ^
      |                                                                              )
p925.cpp:163:28: error: expected ',' or '...' before '&&' token
  163 | unordered_map(unordered_map&&);
      |                            ^~
p925.cpp:163:1: error: invalid constructor; you probably meant 'pmr::std::unordered_map (const pmr::std::unordered_map&)'
  163 | unordered_map(unordered_map&&);
      | ^~~~~~~~~~~~~
p925.cpp:164:30: error: 'Allocator' does not name a type; did you mean 'alloca'?
  164 | explicit unordered_map(const Allocator&);
      |                              ^~~~~~~~~
      |                              alloca
p925.cpp:165:43: error: 'type_identity_t' does not name a type
  165 | unordered_map(const unordered_map&, const type_identity_t<Allocator>&);
      |                                           ^~~~~~~~~~~~~~~
p925.cpp:165:58: error: expected ',' or '...' before '<' token
  165 | unordered_map(const unordered_map&, const type_identity_t<Allocator>&);
      |                                                          ^
p925.cpp:166:28: error: expected ',' or '...' before '&&' token
  166 | unordered_map(unordered_map&&, const type_identity_t<Allocator>&);
      |                            ^~
p925.cpp:166:1: error: invalid constructor; you probably meant 'pmr::std::unordered_map (const pmr::std::unordered_map&)'
  166 | unordered_map(unordered_map&&, const type_identity_t<Allocator>&);
      | ^~~~~~~~~~~~~
p925.cpp:167:31: error: expected ')' before '<' token
  167 | unordered_map(initializer_list<value_type> il,
      |              ~                ^
      |                               )
p925.cpp:172:24: error: expected ')' before 'n'
  172 | unordered_map(size_type n, const allocator_type& a)
      |              ~         ^~
      |                        )
p925.cpp:174:24: error: expected ')' before 'n'
  174 | unordered_map(size_type n, const hasher& hf, const allocator_type& a)
      |              ~         ^~
      |                        )
p925.cpp:177:51: error: 'size_type' has not been declared
  177 |   unordered_map(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
      |                                                   ^~~~~~~~~
p925.cpp:177:70: error: 'allocator_type' does not name a type
  177 |   unordered_map(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
      |                                                                      ^~~~~~~~~~~~~~
p925.cpp:180:51: error: 'size_type' has not been declared
  180 |   unordered_map(InputIterator f, InputIterator l, size_type n, const hasher& hf,
      |                                                   ^~~~~~~~~
p925.cpp:180:70: error: 'hasher' does not name a type; did you mean 'Hash'?
  180 |   unordered_map(InputIterator f, InputIterator l, size_type n, const hasher& hf,
      |                                                                      ^~~~~~
      |                                                                      Hash
p925.cpp:181:23: error: 'allocator_type' does not name a type
  181 |                 const allocator_type& a)
      |                       ^~~~~~~~~~~~~~
p925.cpp:182:59: error: 'container' has not been declared
  182 | : unordered_map(f, l, n, hf, key_equal(), a) { } template<container-compatible-range<value_type> R>
      |                                                           ^~~~~~~~~
p925.cpp:182:68: error: expected '>' before '-' token
  182 | : unordered_map(f, l, n, hf, key_equal(), a) { } template<container-compatible-range<value_type> R>
      |                                                                    ^
p925.cpp:183:29: error: expected ')' before ',' token
  183 |   unordered_map(from_range_t, R&& rg, size_type n, const allocator_type& a)
      |                ~            ^
      |                             )
p925.cpp:185:10: error: 'container' has not been declared
  185 | template<container-compatible-range<value_type> R>
      |          ^~~~~~~~~
p925.cpp:185:19: error: expected '>' before '-' token
  185 | template<container-compatible-range<value_type> R>
      |                   ^
p925.cpp:186:27: error: expected ')' before ',' token
  186 | unordered_map(from_range_t, R&& rg, size_type n, const hasher& hf, const allocator_type& a)
      |              ~            ^
      |                           )
p925.cpp:188:31: error: expected ')' before '<' token
  188 | unordered_map(initializer_list<value_type> il, size_type n, const allocator_type& a)
      |              ~                ^
      |                               )
p925.cpp:190:31: error: expected ')' before '<' token
  190 | unordered_map(initializer_list<value_type> il, size_type n, const hasher& hf,
      |              ~                ^
      |                               )
p925.cpp:194:87: error: expected ',' or '...' before '&&' token
  194 | unordered_map& operator=(const unordered_map&); unordered_map& operator=(unordered_map&&)
      |                                                                                       ^~
p925.cpp:194:89: error: expected ';' at end of member declaration
  194 | unordered_map& operator=(const unordered_map&); unordered_map& operator=(unordered_map&&)
      |                                                                                         ^
      |                                                                                          ;
p925.cpp:195:12: error: 'allocator_traits' has not been declared
  195 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |            ^~~~~~~~~~~~~~~~
p925.cpp:195:28: error: expected ',' or '...' before '<' token
  195 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |                            ^
p925.cpp:195:3: error: ISO C++ forbids declaration of 'noexcept' with no type [-fpermissive]
  195 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |   ^~~~~~~~
p925.cpp:198:26: error: 'initializer_list' has not been declared
  198 | unordered_map& operator=(initializer_list<value_type>);
      |                          ^~~~~~~~~~~~~~~~
p925.cpp:198:42: error: expected ',' or '...' before '<' token
  198 | unordered_map& operator=(initializer_list<value_type>);
      |                                          ^
p925.cpp:199:1: error: 'allocator_type' does not name a type
  199 | allocator_type get_allocator() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:201:1: error: invalid use of template-name 'std::iterator' without an argument list
  201 | iterator       begin() noexcept;
      | ^~~~~~~~
p925.cpp:201:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
In file included from /usr/local/include/c++/12.1.0/string:45,
                 from /usr/local/include/c++/12.1.0/bits/locale_classes.h:40,
                 from /usr/local/include/c++/12.1.0/bits/ios_base.h:41,
                 from /usr/local/include/c++/12.1.0/ios:42,
                 from /usr/local/include/c++/12.1.0/ostream:38,
                 from /usr/local/include/c++/12.1.0/iostream:39,
                 from N4910.h:2:
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:202:1: error: 'const_iterator' does not name a type
  202 | const_iterator begin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:203:1: error: invalid use of template-name 'std::iterator' without an argument list
  203 | iterator       end() noexcept;
      | ^~~~~~~~
p925.cpp:203:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:204:1: error: 'const_iterator' does not name a type
  204 | const_iterator end() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:205:1: error: 'const_iterator' does not name a type
  205 | const_iterator cbegin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:206:1: error: 'const_iterator' does not name a type
  206 | const_iterator cend() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:208:1: error: expected unqualified-id before '[' token
  208 | [[nodiscard]] bool empty() const noexcept;
      | ^
p925.cpp:209:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  209 | size_type size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:210:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  210 | size_type max_size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:212:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  212 | template<class... Args> pair<iterator, bool> emplace(Args&&... args);
      |               ^~~
p925.cpp:212:44: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  212 | template<class... Args> pair<iterator, bool> emplace(Args&&... args);
      |                                            ^
p925.cpp:212:44: note:   expected a type, got 'iterator'
p925.cpp:212:58: error: expected ',' or '...' before '&&' token
  212 | template<class... Args> pair<iterator, bool> emplace(Args&&... args);
      |                                                          ^~
p925.cpp:212:68: error: parameter packs not expanded with '...':
  212 | template<class... Args> pair<iterator, bool> emplace(Args&&... args);
      |                                                                    ^
p925.cpp:212:68: note:         'Args'
p925.cpp:213:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  213 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |               ^~~
p925.cpp:213:25: error: invalid use of template-name 'std::iterator' without an argument list
  213 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                         ^~~~~~~~
p925.cpp:213:25: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++17'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:213:108: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  213 | rgs> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                                                                         ^

p925.cpp:213:108: note:   expected a type, got 'iterator'
p925.cpp:213:123: error: 'value_type' does not name a type
  213 | mplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                                                                         ^~~~~~~~~~

p925.cpp:214:20: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  214 | pair<iterator, bool> insert(value_type&& obj);
      |                    ^
p925.cpp:214:20: note:   expected a type, got 'iterator'
p925.cpp:214:29: error: 'value_type' has not been declared
  214 | pair<iterator, bool> insert(value_type&& obj);
      |                             ^~~~~~~~~~
p925.cpp:214:39: error: expected ',' or '...' before '&&' token
  214 | pair<iterator, bool> insert(value_type&& obj);
      |                                       ^~
p925.cpp:215:38: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  215 | template<class P> pair<iterator, bool> insert(P&& obj);
      |                                      ^
p925.cpp:215:38: note:   expected a type, got 'iterator'
p925.cpp:215:48: error: expected ',' or '...' before '&&' token
  215 | template<class P> pair<iterator, bool> insert(P&& obj);
      |                                                ^~
p925.cpp:216:1: error: invalid use of template-name 'std::iterator' without an argument list
  216 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
p925.cpp:216:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:217:1: error: invalid use of template-name 'std::iterator' without an argument list
  217 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
p925.cpp:217:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:218:19: error: invalid use of template-name 'std::iterator' without an argument list
  218 | template<class P> iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~
p925.cpp:218:19: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++17'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:219:94: error: 'container' has not been declared
  219 | ate<class InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^~~~~~~~~

p925.cpp:219:103: error: expected '>' before '-' token
  219 |  InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^

p925.cpp:220:21: error: 'R' has not been declared
  220 |   void insert_range(R&& rg);
      |                     ^
p925.cpp:220:22: error: expected ',' or '...' before '&&' token
  220 |   void insert_range(R&& rg);
      |                      ^~
p925.cpp:221:13: error: 'initializer_list' has not been declared
  221 | void insert(initializer_list<value_type>);
      |             ^~~~~~~~~~~~~~~~
p925.cpp:221:29: error: expected ',' or '...' before '<' token
  221 | void insert(initializer_list<value_type>);
      |                             ^
p925.cpp:221:6: error: 'void pmr::std::unordered_map::insert(int)' cannot be overloaded with 'int pmr::std::unordered_map::insert(int)'
  221 | void insert(initializer_list<value_type>);
      |      ^~~~~~
p925.cpp:214:22: note: previous declaration 'int pmr::std::unordered_map::insert(int)'
  214 | pair<iterator, bool> insert(value_type&& obj);
      |                      ^~~~~~
p925.cpp:222:1: error: 'node_type' does not name a type
  222 | node_type extract(const_iterator position);
      | ^~~~~~~~~
p925.cpp:223:1: error: 'node_type' does not name a type
  223 | node_type extract(const key_type& x);
      | ^~~~~~~~~
p925.cpp:224:19: error: 'node_type' does not name a type
  224 | template<class K> node_type extract(K&& x);
      |                   ^~~~~~~~~
p925.cpp:225:1: error: 'insert_return_type' does not name a type
  225 | insert_return_type insert(node_type&& nh);
      | ^~~~~~~~~~~~~~~~~~
p925.cpp:226:1: error: invalid use of template-name 'std::iterator' without an argument list
  226 | iterator           insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
p925.cpp:226:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:227:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  227 | template<class... Args>
      |               ^~~
p925.cpp:228:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  228 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                      ^
p925.cpp:228:22: note:   expected a type, got 'iterator'
p925.cpp:228:42: error: 'key_type' does not name a type; did you mean 'key_t'?
  228 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                                          ^~~~~~~~
      |                                          key_t
p925.cpp:228:59: error: expected ',' or '...' before '&&' token
  228 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                                                           ^~
p925.cpp:228:69: error: parameter packs not expanded with '...':
  228 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                                                                     ^
p925.cpp:228:69: note:         'Args'
p925.cpp:229:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  229 | template<class... Args>
      |               ^~~
p925.cpp:230:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  230 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                      ^
p925.cpp:230:22: note:   expected a type, got 'iterator'
p925.cpp:230:36: error: 'key_type' has not been declared
  230 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                    ^~~~~~~~
p925.cpp:230:44: error: expected ',' or '...' before '&&' token
  230 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                            ^~
p925.cpp:231:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  231 | template<class... Args>
      |               ^~~
p925.cpp:232:3: error: invalid use of template-name 'std::iterator' without an argument list
  232 |   iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |   ^~~~~~~~
p925.cpp:232:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:233:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  233 | template<class... Args>
      |               ^~~
p925.cpp:234:3: error: invalid use of template-name 'std::iterator' without an argument list
  234 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |   ^~~~~~~~
p925.cpp:234:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:236:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  236 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                      ^
p925.cpp:236:22: note:   expected a type, got 'iterator'
p925.cpp:236:47: error: 'key_type' does not name a type; did you mean 'key_t'?
  236 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                                               ^~~~~~~~
      |                                               key_t
p925.cpp:236:61: error: expected ',' or '...' before '&&' token
  236 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                                                             ^~
p925.cpp:238:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  238 |   pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
      |                      ^
p925.cpp:238:22: note:   expected a type, got 'iterator'
p925.cpp:238:41: error: 'key_type' has not been declared
  238 |   pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
      |                                         ^~~~~~~~
p925.cpp:238:49: error: expected ',' or '...' before '&&' token
  238 |   pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
      |                                                 ^~
p925.cpp:240:3: error: invalid use of template-name 'std::iterator' without an argument list
  240 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |   ^~~~~~~~
p925.cpp:240:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:242:3: error: invalid use of template-name 'std::iterator' without an argument list
  242 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |   ^~~~~~~~
p925.cpp:242:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:243:1: error: invalid use of template-name 'std::iterator' without an argument list
  243 | iterator  erase(iterator position);
      | ^~~~~~~~
p925.cpp:243:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:244:1: error: invalid use of template-name 'std::iterator' without an argument list
  244 | iterator  erase(const_iterator position);
      | ^~~~~~~~
p925.cpp:244:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:245:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  245 | size_type erase(const key_type& k);
      | ^~~~~~~~~
      | size_t
p925.cpp:246:19: error: 'size_type' does not name a type; did you mean 'size_t'?
  246 | template<class K> size_type erase(K&& x);
      |                   ^~~~~~~~~
      |                   size_t
p925.cpp:247:1: error: invalid use of template-name 'std::iterator' without an argument list
  247 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
p925.cpp:247:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:248:30: error: expected ';' at end of member declaration
  248 | void      swap(unordered_map&)
      |                              ^
      |                               ;
p925.cpp:249:12: error: 'allocator_traits' has not been declared
  249 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |            ^~~~~~~~~~~~~~~~
p925.cpp:249:28: error: expected ',' or '...' before '<' token
  249 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |                            ^
p925.cpp:249:3: error: ISO C++ forbids declaration of 'noexcept' with no type [-fpermissive]
  249 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |   ^~~~~~~~
p925.cpp:249:3: error: 'int pmr::std::unordered_map::noexcept(int)' cannot be overloaded with 'int pmr::std::unordered_map::noexcept(int)'
p925.cpp:195:3: note: previous declaration 'int pmr::std::unordered_map::noexcept(int)'
  195 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |   ^~~~~~~~
p925.cpp:252:17: error: expected ';' at end of member declaration
  252 | void      clear() noexcept;
      |                 ^
      |                  ;
p925.cpp:252:19: error: 'noexcept' does not name a type
  252 | void      clear() noexcept;
      |                   ^~~~~~~~
p925.cpp:252:19: note: C++11 'noexcept' only available with '-std=c++11' or '-std=gnu++11'
p925.cpp:254:14: error: 'pmr::std::unordered_map' is not a template
  254 |   void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
      |              ^~~~~~~~~~~~~
p925.cpp:254:28: error: 'Key' was not declared in this scope
  254 |   void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
      |                            ^~~
p925.cpp:254:44: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  254 |   void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
      |                                            ^~~~~~~~~
      |                                            alloca
p925.cpp:256:14: error: 'pmr::std::unordered_map' is not a template
  256 |   void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
      |              ^~~~~~~~~~~~~
p925.cpp:256:28: error: 'Key' was not declared in this scope
  256 |   void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
      |                            ^~~
p925.cpp:256:44: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  256 |   void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
      |                                            ^~~~~~~~~
      |                                            alloca
p925.cpp:256:54: error: expected ',' or '...' before '&&' token
  256 |   void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
      |                                                      ^~
p925.cpp:258:14: error: 'unordered_multimap' has not been declared
  258 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>& source);
      |              ^~~~~~~~~~~~~~~~~~
p925.cpp:258:32: error: expected ',' or '...' before '<' token
  258 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>& source);
      |                                ^
p925.cpp:260:14: error: 'unordered_multimap' has not been declared
  260 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>&& source);
      |              ^~~~~~~~~~~~~~~~~~
p925.cpp:260:32: error: expected ',' or '...' before '<' token
  260 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>&& source);
      |                                ^
p925.cpp:260:8: error: 'template<class H2, class P2> void pmr::std::unordered_map::merge(int)' cannot be overloaded with 'template<class H2, class P2> void pmr::std::unordered_map::merge(int)'
  260 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>&& source);
      |        ^~~~~
p925.cpp:258:8: note: previous declaration 'template<class H2, class P2> void pmr::std::unordered_map::merge(int)'
  258 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>& source);
      |        ^~~~~
p925.cpp:262:1: error: 'hasher' does not name a type; did you mean 'Hash'?
  262 | hasher hash_function() const;
      | ^~~~~~
      | Hash
p925.cpp:263:1: error: 'key_equal' does not name a type
  263 | key_equal key_eq() const;
      | ^~~~~~~~~
p925.cpp:265:1: error: invalid use of template-name 'std::iterator' without an argument list
  265 | iterator
      | ^~~~~~~~
p925.cpp:265:1: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:271:12: error: 'key_type' does not name a type; did you mean 'key_t'?
  271 | find(const key_type& k) const;
      |            ^~~~~~~~
      |            key_t
p925.cpp:271:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
  271 | find(const key_type& k) const;
      | ^~~~
p925.cpp:272:12: error: 'K' does not name a type
  272 | find(const K& k);
      |            ^
p925.cpp:272:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
  272 | find(const K& k);
      | ^~~~
p925.cpp:273:3: error: 'const_iterator' does not name a type
  273 |   const_iterator find(const K& k) const;
      |   ^~~~~~~~~~~~~~
p925.cpp:275:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  275 | size_type        count(const key_type& k) const;
      | ^~~~~~~~~
      | size_t
p925.cpp:277:3: error: 'size_type' does not name a type; did you mean 'size_t'?
  277 |   size_type      count(const K& k) const;
      |   ^~~~~~~~~
      |   size_t
p925.cpp:278:33: error: 'key_type' does not name a type; did you mean 'key_t'?
  278 | bool             contains(const key_type& k) const;
      |                                 ^~~~~~~~
      |                                 key_t
p925.cpp:281:30: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  281 |       pair<iterator, iterator>
      |                              ^
p925.cpp:281:30: note:   expected a type, got 'iterator'
p925.cpp:281:30: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:281:30: note:   expected a type, got 'iterator'
p925.cpp:282:12: error: 'const_iterator' was not declared in this scope
  282 |       pair<const_iterator, const_iterator>
      |            ^~~~~~~~~~~~~~
p925.cpp:282:28: error: 'const_iterator' was not declared in this scope
  282 |       pair<const_iterator, const_iterator>
      |                            ^~~~~~~~~~~~~~
p925.cpp:282:42: error: template argument 1 is invalid
  282 |       pair<const_iterator, const_iterator>
      |                                          ^
p925.cpp:282:42: error: template argument 2 is invalid
p925.cpp:285:45: error: 'mapped_type' does not name a type
  285 | mapped_type& operator[](const key_type& k); mapped_type& operator[](key_type&& k); mapped_type& at(const key_type& k);
      |                                             ^~~~~~~~~~~
p925.cpp:285:84: error: 'mapped_type' does not name a type
  285 | mapped_type& operator[](const key_type& k); mapped_type& operator[](key_type&& k); mapped_type& at(const key_type& k);
      |                                                                                    ^~~~~~~~~~~
p925.cpp:286:7: error: 'mapped_type' does not name a type
  286 | const mapped_type& at(const key_type& k) const;
      |       ^~~~~~~~~~~
p925.cpp:288:7: error: 'size_type' does not name a type; did you mean 'size_t'?
  288 |       size_type bucket_count() const noexcept;
      |       ^~~~~~~~~
      |       size_t
p925.cpp:289:7: error: 'size_type' does not name a type; did you mean 'size_t'?
  289 |       size_type max_bucket_count() const noexcept;
      |       ^~~~~~~~~
      |       size_t
p925.cpp:290:7: error: 'size_type' does not name a type; did you mean 'size_t'?
  290 |       size_type bucket_size(size_type n) const;
      |       ^~~~~~~~~
      |       size_t
p925.cpp:291:7: error: 'size_type' does not name a type; did you mean 'size_t'?
  291 |       size_type bucket(const key_type& k) const;
      |       ^~~~~~~~~
      |       size_t
p925.cpp:292:7: error: 'local_iterator' does not name a type
  292 |       local_iterator begin(size_type n);
      |       ^~~~~~~~~~~~~~
p925.cpp:293:7: error: 'const_local_iterator' does not name a type
  293 |       const_local_iterator begin(size_type n) const;
      |       ^~~~~~~~~~~~~~~~~~~~
p925.cpp:294:7: error: 'local_iterator' does not name a type
  294 |       local_iterator end(size_type n);
      |       ^~~~~~~~~~~~~~
p925.cpp:295:7: error: 'const_local_iterator' does not name a type
  295 |       const_local_iterator end(size_type n) const;
      |       ^~~~~~~~~~~~~~~~~~~~
p925.cpp:296:7: error: 'const_local_iterator' does not name a type
  296 |       const_local_iterator cbegin(size_type n) const;
      |       ^~~~~~~~~~~~~~~~~~~~
p925.cpp:297:7: error: 'const_local_iterator' does not name a type
  297 |       const_local_iterator cend(size_type n) const;
      |       ^~~~~~~~~~~~~~~~~~~~
p925.cpp:299:27: error: expected ';' at end of member declaration
  299 |       float load_factor() const noexcept;
      |                           ^~~~~
      |                                ;
p925.cpp:299:33: error: 'noexcept' does not name a type
  299 |       float load_factor() const noexcept;
      |                                 ^~~~~~~~
p925.cpp:299:33: note: C++11 'noexcept' only available with '-std=c++11' or '-std=gnu++11'
p925.cpp:300:31: error: expected ';' at end of member declaration
  300 |       float max_load_factor() const noexcept;
      |                               ^~~~~
      |                                    ;
p925.cpp:300:37: error: 'noexcept' does not name a type
  300 |       float max_load_factor() const noexcept;
      |                                     ^~~~~~~~
p925.cpp:300:37: note: C++11 'noexcept' only available with '-std=c++11' or '-std=gnu++11'
p925.cpp:302:19: error: 'size_type' has not been declared
  302 |       void rehash(size_type n);
      |                   ^~~~~~~~~
p925.cpp:303:20: error: 'size_type' has not been declared
  303 |       void reserve(size_type n);
      |                    ^~~~~~~~~
p925.cpp:155:63: error: 'see' was not declared in this scope
  155 | unordered_map(InputIterator f, InputIterator l, size_type n = see below,
      |                                                               ^~~
p925.cpp:156:36: error: there are no arguments to 'hasher' that depend on a template parameter, so a declaration of 'hasher' must be available [-fpermissive]
  156 |                 const hasher& hf = hasher(),
      |                                    ^~~~~~
p925.cpp:156:36: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
p925.cpp:157:40: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  157 |                 const key_equal& eql = key_equal(),
      |                                        ^~~~~~~~~
p925.cpp:158:43: error: there are no arguments to 'allocator_type' that depend on a template parameter, so a declaration of 'allocator_type' must be available [-fpermissive]
  158 |                 const allocator_type& a = allocator_type());
      |                                           ^~~~~~~~~~~~~~
p925.cpp: In constructor 'pmr::std::unordered_map::unordered_map(InputIterator, InputIterator, int, const int&)':
p925.cpp:178:30: error: there are no arguments to 'hasher' that depend on a template parameter, so a declaration of 'hasher' must be available [-fpermissive]
  178 |     : unordered_map(f, l, n, hasher(), key_equal(), a) { }
      |                              ^~~~~~
p925.cpp:178:40: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  178 |     : unordered_map(f, l, n, hasher(), key_equal(), a) { }
      |                                        ^~~~~~~~~
p925.cpp:178:54: warning: delegating constructors only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  178 |     : unordered_map(f, l, n, hasher(), key_equal(), a) { }
      |                                                      ^
p925.cpp: In constructor 'pmr::std::unordered_map::unordered_map(InputIterator, InputIterator, int, const int&, const int&)':
p925.cpp:182:30: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  182 | : unordered_map(f, l, n, hf, key_equal(), a) { } template<container-compatible-range<value_type> R>
      |                              ^~~~~~~~~
p925.cpp:182:44: warning: delegating constructors only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  182 | : unordered_map(f, l, n, hf, key_equal(), a) { } template<container-compatible-range<value_type> R>
      |                                            ^
p925.cpp: At global scope:
p925.cpp:306:14: error: 'hash' does not name a type; did you mean 'Hash'?
  306 | class Hash = hash<iter_key_type<InputIterator>>,
      |              ^~~~
      |              Hash
p925.cpp:306:18: error: expected '>' before '<' token
  306 | class Hash = hash<iter_key_type<InputIterator>>,
      |                  ^
p925.cpp:310:103: error: expected unqualified-id before ';' token
  310 | nordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash, Pred, Allocator>;
      |                                                                                                   ^

p925.cpp:311:10: error: 'ranges' has not been declared
  311 | template<ranges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
      |          ^~~~~~
p925.cpp:311:30: error: expected '>' before 'R'
  311 | template<ranges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
      |                              ^
p925.cpp:314:81: error: expected unqualified-id before ';' token
  314 | -> unordered_map<range_key_type<R>, range-mapped-type<R>, Hash, Pred, Allocator>;
      |                                                                                 ^
p925.cpp:315:56: error: 'key_type' does not name a type; did you mean 'key_t'?
  315 |                                      equal_range(const key_type& k);
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:315:68: error: expected constructor, destructor, or type conversion before ';' token
  315 |                                      equal_range(const key_type& k);
      |                                                                    ^
p925.cpp:316:56: error: 'key_type' does not name a type; did you mean 'key_t'?
  316 |                                      equal_range(const key_type& k) const;
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:316:74: error: expected constructor, destructor, or type conversion before ';' token
  316 |                                      equal_range(const key_type& k) const;
      |                                                                          ^
p925.cpp:317:56: error: 'K' does not name a type
  317 |                                      equal_range(const K& k);
      |                                                        ^
p925.cpp:317:61: error: expected constructor, destructor, or type conversion before ';' token
  317 |                                      equal_range(const K& k);
      |                                                             ^
p925.cpp:318:6: error: 'const_iterator' was not declared in this scope
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |      ^~~~~~~~~~~~~~
p925.cpp:318:22: error: 'const_iterator' was not declared in this scope
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                      ^~~~~~~~~~~~~~
p925.cpp:318:36: error: template argument 1 is invalid
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                    ^
p925.cpp:318:36: error: template argument 2 is invalid
p925.cpp:318:56: error: 'K' does not name a type
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                        ^
p925.cpp:318:62: error: non-member function 'int pmr::std::equal_range(const int&)' cannot have cv-qualifier
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                              ^~~~~
p925.cpp:319:26: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  319 |   pair<iterator, iterator>
      |                          ^
p925.cpp:319:26: note:   expected a type, got 'iterator'
p925.cpp:319:26: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:319:26: note:   expected a type, got 'iterator'
p925.cpp:320:1: error: expected unqualified-id before 'template'
  320 | template<class K>
      | ^~~~~~~~
p925.cpp:327:28: error: expected ')' before ',' token
  327 | unordered_map(InputIterator, InputIterator, typename see_below::size_type, Allocator)
      |              ~             ^
      |                            )
p925.cpp:331:37: error: expected ')' before ',' token
  331 |          unordered_map(InputIterator, InputIterator, Allocator)
      |                       ~             ^
      |                                     )
p925.cpp:335:28: error: expected ')' before ',' token
  335 | unordered_map(InputIterator, InputIterator, typename see_below::size_type, Hash, Allocator)
      |              ~             ^
      |                            )
p925.cpp:337:10: error: 'ranges' has not been declared
  337 | template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
      |          ^~~~~~
p925.cpp:337:24: error: expected '>' before '{' token
  337 | template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
      |                        ^
p925.cpp:337:24: error: expected unqualified-id before '{' token
p925.cpp:337:38: error: 'R' does not name a type
  337 | template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
      |                                      ^
p925.cpp:339:17: error: 'ranges' has not been declared
  339 |        template<ranges::input_range R, class Allocator>
      |                 ^~~~~~
p925.cpp:339:37: error: expected '>' before 'R'
  339 |        template<ranges::input_range R, class Allocator>
      |                                     ^
p925.cpp:340:36: error: expected ')' before ',' token
  340 |          unordered_map(from_range_t, R&&, Allocator)
      |                       ~            ^
      |                                    )
p925.cpp:342:10: error: 'ranges' has not been declared
  342 | template<ranges::input_range R, class Hash, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |          ^~~~~~
p925.cpp:342:30: error: expected '>' before 'R'
  342 | template<ranges::input_range R, class Hash, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                              ^
p925.cpp:342:88: error: expected ')' before ',' token
  342 | template<ranges::input_range R, class Hash, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                                                                           ~            ^
      |                                                                                        )
p925.cpp:344:77: error: expected ')' before '<' token
  344 | template<class Key, class T, class Allocator> unordered_map(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                            ~                ^
      |                                                                             )
p925.cpp:348:40: error: expected ')' before '<' token
  348 |          unordered_map(initializer_list<pair<Key, T>>, Allocator)
      |                       ~                ^
      |                                        )
p925.cpp:350:89: error: expected ')' before '<' token
  350 | template<class Key, class T, class Hash, class Allocator> unordered_map(initializer_list<pair<Key, T>>, typename see_below::size_type, Hash, Allocator)
      |                                                                        ~                ^
      |                                                                                         )
p925.cpp:355:1: error: ISO C++ forbids declaration of 'unordered_map' with no type [-fpermissive]
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      | ^~~~~~~~~~~~~
p925.cpp: In function 'int pmr::unordered_map()':
p925.cpp:355:19: error: only constructors take member initializers
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                   ^~~~~~~~~~~~~
p925.cpp:355:43: error: 'see' was not declared in this scope
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                                           ^~~
p925.cpp:355:33: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                                 ^~~~~~~~~
      |                                 size_t
p925.cpp:355:57: warning: no return statement in function returning non-void [-Wreturn-type]
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                                                         ^
p925.cpp: At global scope:
p925.cpp:355:68: error: ISO C++ forbids declaration of 'unordered_map' with no type [-fpermissive]
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                                                                    ^~~~~~~~~~~~~
p925.cpp:355:59: error: 'explicit' outside class declaration
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                                                           ^~~~~~~~
p925.cpp:355:82: error: 'int pmr::unordered_map' redeclared as different kind of entity
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                                                                                  ^~~~~~~~~
p925.cpp:355:1: note: previous declaration 'int pmr::unordered_map()'
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      | ^~~~~~~~~~~~~
p925.cpp:355:82: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                                                                                  ^~~~~~~~~
      |                                                                                  size_t
p925.cpp:356:27: error: expected primary-expression before 'const'
  356 |                           const hasher& hf = hasher(),
      |                           ^~~~~
p925.cpp:357:27: error: expected primary-expression before 'const'
  357 |                           const key_equal& eql = key_equal(),
      |                           ^~~~~
p925.cpp:358:19: error: expected primary-expression before 'const'
  358 |                   const allocator_type& a = allocator_type());
      |                   ^~~~~
p925.cpp:361:16: error: 'hasher' does not name a type
  361 |          const hasher& hf = hasher(),
      |                ^~~~~~
p925.cpp:368:1: error: 'size_type' has not been declared
  368 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:368:15: error: 'see_below' was not declared in this scope
  368 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:369:7: error: 'hasher' does not name a type
  369 | const hasher& hf = hasher(),
      |       ^~~~~~
p925.cpp:369:20: error: there are no arguments to 'hasher' that depend on a template parameter, so a declaration of 'hasher' must be available [-fpermissive]
  369 | const hasher& hf = hasher(),
      |                    ^~~~~~
p925.cpp:370:7: error: 'key_equal' does not name a type
  370 | const key_equal& eql = key_equal(),
      |       ^~~~~~~~~
p925.cpp:370:24: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  370 | const key_equal& eql = key_equal(),
      |                        ^~~~~~~~~
p925.cpp:371:7: error: 'allocator_type' does not name a type
  371 | const allocator_type& a = allocator_type());
      |       ^~~~~~~~~~~~~~
p925.cpp:371:27: error: there are no arguments to 'allocator_type' that depend on a template parameter, so a declaration of 'allocator_type' must be available [-fpermissive]
  371 | const allocator_type& a = allocator_type());
      |                           ^~~~~~~~~~~~~~
p925.cpp:371:44: error: expected constructor, destructor, or type conversion before ';' token
  371 | const allocator_type& a = allocator_type());
      |                                            ^
p925.cpp:372:10: error: 'container' has not been declared
  372 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg,
      |          ^~~~~~~~~
p925.cpp:372:19: error: expected '>' before '-' token
  372 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg,
      |                   ^
p925.cpp:372:65: error: expected constructor, destructor, or type conversion before '(' token
  372 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg,
      |                                                                 ^
p925.cpp:377:14: error: expected constructor, destructor, or type conversion before '(' token
  377 | unordered_map(initializer_list<value_type> il, size_type n = see below,
      |              ^
p925.cpp:382:7: error: 'mapped_type' does not name a type
  382 | const mapped_type& at(const key_type& k) const;
      |       ^~~~~~~~~~~
p925.cpp:386:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  386 |   pair<iterator, bool> insert(P&& obj);
      |                      ^
p925.cpp:386:22: note:   expected a type, got 'iterator'
p925.cpp:386:32: error: expected ',' or '...' before '&&' token
  386 |   pair<iterator, bool> insert(P&& obj);
      |                                ^~
p925.cpp:389:3: error: invalid use of template-name 'std::iterator' without an argument list
  389 |   iterator insert(const_iterator hint, P&& obj);
      |   ^~~~~~~~
p925.cpp:389:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:392:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  392 | template<class... Args>
      |               ^~~
p925.cpp:393:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                      ^
p925.cpp:393:22: note:   expected a type, got 'iterator'
p925.cpp:393:42: error: 'key_type' does not name a type; did you mean 'key_t'?
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                                          ^~~~~~~~
      |                                          key_t
p925.cpp:393:59: error: expected ',' or '...' before '&&' token
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                                                           ^~
p925.cpp:393:69: error: parameter packs not expanded with '...':
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                                                                     ^
p925.cpp:393:69: note:         'Args'
p925.cpp:394:18: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  394 |    template<class... Args>
      |                  ^~~
p925.cpp:395:6: error: invalid use of template-name 'std::iterator' without an argument list
  395 |      iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |      ^~~~~~~~
p925.cpp:395:6: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:400:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  400 | template<class... Args>
      |               ^~~
p925.cpp:401:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                      ^
p925.cpp:401:22: note:   expected a type, got 'iterator'
p925.cpp:401:36: error: 'template<class ... Args> int pmr::try_emplace' conflicts with a previous declaration
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                    ^~~~~~~~
p925.cpp:393:24: note: previous declaration 'int pmr::try_emplace(const int&, <type error>)'
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                        ^~~~~~~~~~~
p925.cpp:401:36: error: 'key_type' was not declared in this scope; did you mean 'key_t'?
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                    ^~~~~~~~
      |                                    key_t
p925.cpp:401:47: error: 'k' was not declared in this scope
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                               ^
p925.cpp:401:54: error: expected primary-expression before '&&' token
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                                      ^~
p925.cpp:401:64: error: expression list treated as compound expression in initializer [-fpermissive]
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                                                ^
p925.cpp:401:24: warning: variable templates only available with '-std=c++14' or '-std=gnu++14' [-Wc++14-extensions]
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                        ^~~~~~~~~~~
p925.cpp:402:15: warning: variadic templates only available with '-std=c++11' or '-std=gnu++11' [-Wc++11-extensions]
  402 | template<class... Args>
      |               ^~~
p925.cpp:403:3: error: invalid use of template-name 'std::iterator' without an argument list
  403 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |   ^~~~~~~~
p925.cpp:403:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:409:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  409 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                      ^
p925.cpp:409:22: note:   expected a type, got 'iterator'
p925.cpp:409:47: error: 'key_type' does not name a type; did you mean 'key_t'?
  409 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                                               ^~~~~~~~
      |                                               key_t
p925.cpp:409:61: error: expected ',' or '...' before '&&' token
  409 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                                                             ^~
p925.cpp:411:3: error: invalid use of template-name 'std::iterator' without an argument list
  411 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |   ^~~~~~~~
p925.cpp:411:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:414:1: error: 'ward' does not name a type
  414 | ward<M>(obj).
      | ^~~~
p925.cpp:421:3: error: invalid use of template-name 'std::iterator' without an argument list
  421 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |   ^~~~~~~~
p925.cpp:421:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:424:6: error: 'forward' in namespace 'pmr::std' does not name a template type
  424 | std::forward<M>(obj).
      |      ^~~~~~~
p925.cpp:433:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++11-compat]
  433 |        auto original_size = c.size();
      |        ^~~~
      |        ----
p925.cpp:433:13: error: 'original_size' does not name a type
  433 |        auto original_size = c.size();
      |             ^~~~~~~~~~~~~
p925.cpp:434:8: error: expected unqualified-id before 'for'
  434 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |        ^~~
p925.cpp:434:49: error: 'i' does not name a type
  434 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                 ^
p925.cpp:434:60: error: expected unqualified-id before ')' token
  434 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                            ^
p925.cpp:439:8: error: expected unqualified-id before 'return'
  439 |        return original_size - c.size();
      |        ^~~~~~
p925.cpp:448:30: error: 'hash' does not name a type; did you mean 'Hash'?
  448 |                 class Hash = hash<Key>,
      |                              ^~~~
      |                              Hash
p925.cpp:448:34: error: expected '>' before '<' token
  448 |                 class Hash = hash<Key>,
      |                                  ^
p925.cpp:451:26: error: expected unqualified-id before '{' token
  451 | class unordered_multimap {
      |                          ^
p925.cpp:620:14: error: 'hash' does not name a type; did you mean 'Hash'?
  620 | class Hash = hash<iter_key_type<InputIterator>>,
      |              ^~~~
      |              Hash
p925.cpp:620:18: error: expected '>' before '<' token
  620 | class Hash = hash<iter_key_type<InputIterator>>,
      |                  ^
p925.cpp:627:49: error: expected unqualified-id before ';' token
  627 |                           Hash, Pred, Allocator>;
      |                                                 ^
p925.cpp:628:10: error: 'ranges' has not been declared
  628 | template<ranges::input_range R,
      |          ^~~~~~
p925.cpp:628:30: error: expected '>' before 'R'
  628 | template<ranges::input_range R,
      |                              ^
p925.cpp:633:86: error: expected unqualified-id before ';' token
  633 | -> unordered_multimap<range_key_type<R>, range_mapped_type<R>, Hash, Pred, Allocator>;
      |                                                                                      ^
p925.cpp:634:43: error: 'hash' does not name a type; did you mean 'Hash'?
  634 | template<class Key, class T, class Hash = hash<Key>,
      |                                           ^~~~
      |                                           Hash
p925.cpp:634:47: error: expected '>' before '<' token
  634 | template<class Key, class T, class Hash = hash<Key>,
      |                                               ^
p925.cpp:639:57: error: expected unqualified-id before ';' token
  639 |     -> unordered_multimap<Key, T, Hash, Pred, Allocator>;
      |                                                         ^
p925.cpp:641:59: error: expected nested-name-specifier before 'see'
  641 | unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                           ^~~
p925.cpp:641:63: error: expected ',' or '...' before 'below'
  641 | unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                               ^~~~~
p925.cpp:642:4: error: 'unordered_multimap' does not name a type; did you mean 'unordered_map'?
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |    ^~~~~~~~~~~~~~~~~~
      |    unordered_map
p925.cpp:642:22: error: expected constructor, destructor, or type conversion before '<' token
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                      ^
p925.cpp:646:4: error: 'unordered_multimap' does not name a type; did you mean 'unordered_map'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |    ^~~~~~~~~~~~~~~~~~
      |    unordered_map
p925.cpp:646:22: error: expected constructor, destructor, or type conversion before '<' token
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                      ^
p925.cpp:649:118: error: expected nested-name-specifier before 'see'
  649 |  class Hash, class Allocator> unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Hash,
      |                                                                                         ^~~

p925.cpp:649:122: error: expected ',' or '...' before 'below'
  649 | ss Hash, class Allocator> unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Hash,
      |                                                                                         ^~~~~

p925.cpp:651:4: error: 'unordered_multimap' does not name a type; did you mean 'unordered_map'?
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |    ^~~~~~~~~~~~~~~~~~
      |    unordered_map
p925.cpp:651:22: error: expected constructor, destructor, or type conversion before '<' token
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                      ^
p925.cpp:653:10: error: 'ranges' has not been declared
  653 | template<ranges::input_range R, class Allocator>
      |          ^~~~~~
p925.cpp:653:30: error: expected '>' before 'R'
  653 | template<ranges::input_range R, class Allocator>
      |                              ^
p925.cpp:654:19: error: expected constructor, destructor, or type conversion before '(' token
  654 | unordered_multimap(from_range_t, R&&, typename see_below::size_type, Allocator)
      |                   ^
p925.cpp:656:17: error: 'ranges' has not been declared
  656 |        template<ranges::input_range R, class Allocator>
      |                 ^~~~~~
p925.cpp:656:37: error: expected '>' before 'R'
  656 |        template<ranges::input_range R, class Allocator>
      |                                     ^
p925.cpp:657:28: error: expected constructor, destructor, or type conversion before '(' token
  657 |          unordered_multimap(from_range_t, R&&, Allocator)
      |                            ^
p925.cpp:659:10: error: 'ranges' has not been declared
  659 | template<ranges::input_range R, class Hash, class Allocator> unordered_multimap(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |          ^~~~~~
p925.cpp:659:30: error: expected '>' before 'R'
  659 | template<ranges::input_range R, class Hash, class Allocator> unordered_multimap(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                              ^
p925.cpp:659:80: error: expected constructor, destructor, or type conversion before '(' token
  659 | template<ranges::input_range R, class Hash, class Allocator> unordered_multimap(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                                                                                ^
p925.cpp:661:65: error: expected constructor, destructor, or type conversion before '(' token
  661 | template<class Key, class T, class Allocator> unordered_multimap(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                                 ^
p925.cpp:665:28: error: expected constructor, destructor, or type conversion before '(' token
  665 |          unordered_multimap(initializer_list<pair<Key, T>>, Allocator)
      |                            ^
p925.cpp:667:77: error: expected constructor, destructor, or type conversion before '(' token
  667 | template<class Key, class T, class Hash, class Allocator> unordered_multimap(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                                             ^
p925.cpp:673:1: error: ISO C++ forbids declaration of 'unordered_multimap' with no type [-fpermissive]
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      | ^~~~~~~~~~~~~~~~~~
p925.cpp: In function 'int pmr::unordered_multimap()':
p925.cpp:673:24: error: only constructors take member initializers
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                        ^~~~~~~~~~~~~~~~~~
p925.cpp:673:53: error: 'see' was not declared in this scope
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                                                     ^~~
p925.cpp:673:43: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                                           ^~~~~~~~~
      |                                           size_t
p925.cpp:673:67: warning: no return statement in function returning non-void [-Wreturn-type]
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                                                                   ^
p925.cpp: At global scope:
p925.cpp:673:78: error: ISO C++ forbids declaration of 'unordered_multimap' with no type [-fpermissive]
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                                                                              ^~~~~~~~~~~~~~~~~~
p925.cpp:673:69: error: 'explicit' outside class declaration
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                                                                     ^~~~~~~~
p925.cpp:673:97: error: 'int pmr::unordered_multimap' redeclared as different kind of entity
  673 | d_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                                                                                         ^~~~~~~~~

p925.cpp:673:1: note: previous declaration 'int pmr::unordered_multimap()'
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      | ^~~~~~~~~~~~~~~~~~
p925.cpp:673:97: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
  673 | d_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                                                                                         ^~~~~~~~~
      |                                                                                         size_t
p925.cpp:674:1: error: expected primary-expression before 'const'
  674 | const hasher& hf = hasher(),
      | ^~~~~
p925.cpp:675:1: error: expected primary-expression before 'const'
  675 | const key_equal& eql = key_equal(),
      | ^~~~~
p925.cpp:676:1: error: expected primary-expression before 'const'
  676 | const allocator_type& a = allocator_type());
      | ^~~~~
p925.cpp:679:1: error: 'size_type' has not been declared
  679 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:679:15: error: 'see_below' was not declared in this scope
  679 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:680:7: error: 'hasher' does not name a type
  680 | const hasher& hf = hasher(),
      |       ^~~~~~
p925.cpp:680:20: error: there are no arguments to 'hasher' that depend on a template parameter, so a declaration of 'hasher' must be available [-fpermissive]
  680 | const hasher& hf = hasher(),
      |                    ^~~~~~
p925.cpp:681:7: error: 'key_equal' does not name a type
  681 | const key_equal& eql = key_equal(),
      |       ^~~~~~~~~
p925.cpp:681:24: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  681 | const key_equal& eql = key_equal(),
      |                        ^~~~~~~~~
p925.cpp:682:7: error: 'allocator_type' does not name a type
  682 | const allocator_type& a = allocator_type());
      |       ^~~~~~~~~~~~~~
p925.cpp:682:27: error: there are no arguments to 'allocator_type' that depend on a template parameter, so a declaration of 'allocator_type' must be available [-fpermissive]
  682 | const allocator_type& a = allocator_type());
      |                           ^~~~~~~~~~~~~~
p925.cpp:682:44: error: expected constructor, destructor, or type conversion before ';' token
  682 | const allocator_type& a = allocator_type());
      |                                            ^
p925.cpp:683:10: error: 'container_compatible_range' has not been declared
  683 | template<container_compatible_range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:683:36: error: expected '>' before '<' token
  683 | template<container_compatible_range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |                                    ^
p925.cpp:683:70: error: expected constructor, destructor, or type conversion before '(' token
  683 | template<container_compatible_range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |                                                                      ^
p925.cpp:688:19: error: expected constructor, destructor, or type conversion before '(' token
  688 | unordered_multimap(initializer_list<value_type> il,
      |                   ^
p925.cpp:697:3: error: invalid use of template-name 'std::iterator' without an argument list
  697 |   iterator insert(P&& obj);
      |   ^~~~~~~~
p925.cpp:697:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:700:3: error: invalid use of template-name 'std::iterator' without an argument list
  700 |   iterator insert(const_iterator hint, P&& obj);
      |   ^~~~~~~~
p925.cpp:700:3: note: class template argument deduction is only available with '-std=c++17' or '-std=gnu++1'
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:702:8: error: found ':' in nested-name-specifier, expected '::'
  702 | Effects: Equivalent to: return emplace_hint(hint, std::forward<P>(obj));
      |        ^
      |        ::
p925.cpp:702:1: error: 'Effects' does not name a type
  702 | Effects: Equivalent to: return emplace_hint(hint, std::forward<P>(obj));
      | ^~~~~~~
p925.cpp:705:12: error: expected nested-name-specifier before 'unordered_multimap'
  705 |   typename unordered_multimap<K, T, H, P, A>::size_type
      |            ^~~~~~~~~~~~~~~~~~
p925.cpp:705:30: error: expected initializer before '<' token
  705 |   typename unordered_multimap<K, T, H, P, A>::size_type
      |                              ^
p925.cpp:708:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++11-compat]
  708 |        auto original_size = c.size();
      |        ^~~~
      |        ----
p925.cpp:708:13: error: 'original_size' does not name a type
  708 |        auto original_size = c.size();
      |             ^~~~~~~~~~~~~
p925.cpp:709:8: error: expected unqualified-id before 'for'
  709 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |        ^~~
p925.cpp:709:49: error: 'i' does not name a type
  709 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                 ^
p925.cpp:709:60: error: expected unqualified-id before ')' token
  709 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                            ^
p925.cpp:714:8: error: expected unqualified-id before 'return'
  714 |        return original_size - c.size();
      |        ^~~~~~
p925.cpp:722:30: error: 'hash' does not name a type; did you mean 'Hash'?
  722 |                 class Hash = hash<Key>,
      |                              ^~~~
      |                              Hash
p925.cpp:722:34: error: expected '>' before '<' token
  722 |                 class Hash = hash<Key>,
      |                                  ^
p925.cpp:725:21: error: expected unqualified-id before '{' token
  725 | class unordered_set {
      |                     ^
p925.cpp:881:14: error: 'hash' does not name a type; did you mean 'Hash'?
  881 | class Hash = hash<iter_value_type<InputIterator>>,
      |              ^~~~
      |              Hash
p925.cpp:881:18: error: expected '>' before '<' token
  881 | class Hash = hash<iter_value_type<InputIterator>>,
      |                  ^
p925.cpp:885:72: error: expected unqualified-id before ';' token
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                                        ^
p925.cpp:886:12: error: 'ranges' has not been declared
  886 |   template<ranges::input_range R,
      |            ^~~~~~
p925.cpp:886:32: error: expected '>' before 'R'
  886 |   template<ranges::input_range R,
      |                                ^
p925.cpp:891:68: error: expected unqualified-id before ';' token
  891 |                                      equal_range(const key_type& k);
      |                                                                    ^
p925.cpp:892:56: error: 'key_type' does not name a type; did you mean 'key_t'?
  892 |                                      equal_range(const key_type& k) const;
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:892:74: error: expected constructor, destructor, or type conversion before ';' token
  892 |                                      equal_range(const key_type& k) const;
      |                                                                          ^
p925.cpp:893:56: error: 'K' does not name a type
  893 |                                      equal_range(const K& k);
      |                                                        ^
p925.cpp:893:61: error: expected constructor, destructor, or type conversion before ';' token
  893 |                                      equal_range(const K& k);
      |                                                             ^
p925.cpp:894:6: error: 'const_iterator' was not declared in this scope
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |      ^~~~~~~~~~~~~~
p925.cpp:894:22: error: 'const_iterator' was not declared in this scope
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                      ^~~~~~~~~~~~~~
p925.cpp:894:36: error: template argument 1 is invalid
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                    ^
p925.cpp:894:36: error: template argument 2 is invalid
p925.cpp:894:56: error: 'K' does not name a type
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                        ^
p925.cpp:894:62: error: non-member function 'int pmr::std::equal_range(const int&)' cannot have cv-qualifier
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                              ^~~~~
p925.cpp:895:26: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  895 |   pair<iterator, iterator>
      |                          ^
p925.cpp:895:26: note:   expected a type, got 'iterator'
p925.cpp:895:26: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:895:26: note:   expected a type, got 'iterator'
p925.cpp:896:1: error: expected unqualified-id before 'template'
  896 | template<class K>
      | ^~~~~~~~
p925.cpp:900:39: error: 'hash' does not name a type; did you mean 'Hash'?
  900 |        template<class T, class Hash = hash<T>,
      |                                       ^~~~
      |                                       Hash
p925.cpp:900:43: error: expected '>' before '<' token
  900 |        template<class T, class Hash = hash<T>,
      |                                           ^
p925.cpp:903:54: error: expected unqualified-id before ';' token
  903 |            -> unordered_set<T, Hash, Pred, Allocator>;
      |                                                      ^
p925.cpp:905:54: error: expected nested-name-specifier before 'see'
  905 | unordered_set(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                      ^~~
p925.cpp:905:58: error: expected ',' or '...' before 'below'
  905 | unordered_set(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                          ^~~~~
p925.cpp:906:4: error: 'unordered_set' does not name a type; did you mean 'unordered_map'?
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |    ^~~~~~~~~~~~~
      |    unordered_map
p925.cpp:906:17: error: expected constructor, destructor, or type conversion before '<' token
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                 ^
p925.cpp:908:113: error: expected nested-name-specifier before 'see'
  908 | ator, class Hash, class Allocator> unordered_set(InputIterator, InputIterator, typename see below::size_type,
      |                                                                                         ^~~

p925.cpp:908:117: error: expected ',' or '...' before 'below'
  908 | , class Hash, class Allocator> unordered_set(InputIterator, InputIterator, typename see below::size_type,
      |                                                                                         ^~~~~

p925.cpp:910:4: error: 'unordered_set' does not name a type; did you mean 'unordered_map'?
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |    ^~~~~~~~~~~~~
      |    unordered_map
p925.cpp:910:17: error: expected constructor, destructor, or type conversion before '<' token
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                 ^
p925.cpp:912:10: error: 'ranges' has not been declared
  912 | template<ranges::input_range R, class Allocator>
      |          ^~~~~~
p925.cpp:912:30: error: expected '>' before 'R'
  912 | template<ranges::input_range R, class Allocator>
      |                              ^
p925.cpp:913:14: error: expected constructor, destructor, or type conversion before '(' token
  913 | unordered_set(from_range_t, R&&, typename see below::size_type, Allocator)
      |              ^
p925.cpp:916:17: error: 'ranges' has not been declared
  916 |        template<ranges::input_range R, class Allocator>
      |                 ^~~~~~
p925.cpp:916:37: error: expected '>' before 'R'
  916 |        template<ranges::input_range R, class Allocator>
      |                                     ^
p925.cpp:917:23: error: expected constructor, destructor, or type conversion before '(' token
  917 |          unordered_set(from_range_t, R&&, Allocator)
      |                       ^
p925.cpp:920:10: error: 'ranges' has not been declared
  920 | template<ranges::input_range R, class Hash, class Allocator> unordered_set(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |          ^~~~~~
p925.cpp:920:30: error: expected '>' before 'R'
  920 | template<ranges::input_range R, class Hash, class Allocator> unordered_set(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                              ^
p925.cpp:920:75: error: expected constructor, destructor, or type conversion before '(' token
  920 | template<ranges::input_range R, class Hash, class Allocator> unordered_set(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                                                                           ^
p925.cpp:924:14: error: expected constructor, destructor, or type conversion before '(' token
  924 | unordered_set(initializer_list<T>, typename see below::size_type, Allocator)
      |              ^
p925.cpp:927:14: error: expected constructor, destructor, or type conversion before '(' token
  927 | unordered_set(initializer_list<T>, typename see below::size_type, Hash, Allocator)
      |              ^
p925.cpp:932:1: error: ISO C++ forbids declaration of 'unordered_set' with no type [-fpermissive]
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      | ^~~~~~~~~~~~~
p925.cpp: In function 'int pmr::unordered_set()':
p925.cpp:932:19: error: only constructors take member initializers
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                   ^~~~~~~~~~~~~
p925.cpp:932:43: error: 'see' was not declared in this scope
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                           ^~~
p925.cpp:932:33: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                 ^~~~~~~~~
      |                                 size_t
p925.cpp:932:57: warning: no return statement in function returning non-void [-Wreturn-type]
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                         ^
p925.cpp: At global scope:
p925.cpp:932:68: error: ISO C++ forbids declaration of 'unordered_set' with no type [-fpermissive]
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                                    ^~~~~~~~~~~~~
p925.cpp:932:59: error: 'explicit' outside class declaration
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                           ^~~~~~~~
p925.cpp:932:82: error: 'int pmr::unordered_set' redeclared as different kind of entity
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                                                  ^~~~~~~~~
p925.cpp:932:1: note: previous declaration 'int pmr::unordered_set()'
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      | ^~~~~~~~~~~~~
p925.cpp:932:82: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                                                  ^~~~~~~~~
      |                                                                                  size_t
p925.cpp:933:1: error: expected primary-expression before 'const'
  933 | const hasher& hf = hasher(),
      | ^~~~~
p925.cpp:934:1: error: expected primary-expression before 'const'
  934 | const key_equal& eql = key_equal(),
      | ^~~~~
p925.cpp:935:1: error: expected primary-expression before 'const'
  935 | const allocator_type& a = allocator_type());
      | ^~~~~
p925.cpp:938:1: error: 'size_type' has not been declared
  938 | size_type n = see below,
      | ^~~~~~~~~
p925.cpp:938:15: error: 'see' was not declared in this scope
  938 | size_type n = see below,
      |               ^~~
p925.cpp:938:19: error: expected ',' or '...' before 'below'
  938 | size_type n = see below,
      |                   ^~~~~
p925.cpp:941:44: error: expected constructor, destructor, or type conversion before ';' token
  941 | const allocator_type& a = allocator_type());
      |                                            ^
p925.cpp:942:10: error: 'container_compatible_range' has not been declared
  942 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:942:36: error: expected '>' before '<' token
  942 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                    ^
p925.cpp:942:70: error: expected constructor, destructor, or type conversion before '(' token
  942 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                                                      ^
p925.cpp:947:14: error: expected constructor, destructor, or type conversion before '(' token
  947 | unordered_set(initializer_list<value_type> il, size_type n = see below,
      |              ^
p925.cpp:954:12: error: expected nested-name-specifier before 'unordered_set'
  954 |   typename unordered_set<K, H, P, A>::size_type
      |            ^~~~~~~~~~~~~
p925.cpp:954:25: error: expected initializer before '<' token
  954 |   typename unordered_set<K, H, P, A>::size_type
      |                         ^
p925.cpp:957:8: error: found ':' in nested-name-specifier, expected '::'
  957 | Effects: Equivalent to:
      |        ^
      |        ::
p925.cpp:957:1: error: 'Effects' does not name a type
  957 | Effects: Equivalent to:
      | ^~~~~~~
p925.cpp:959:8: error: expected unqualified-id before 'for'
  959 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |        ^~~
p925.cpp:959:49: error: 'i' does not name a type
  959 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                 ^
p925.cpp:959:60: error: expected unqualified-id before ')' token
  959 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                            ^
p925.cpp:964:8: error: expected unqualified-id before 'return'
  964 |        return original_size - c.size();
      |        ^~~~~~
p925.cpp:972:30: error: 'hash' does not name a type; did you mean 'Hash'?
  972 |                 class Hash = hash<Key>,
      |                              ^~~~
      |                              Hash
p925.cpp:972:34: error: expected '>' before '<' token
  972 |                 class Hash = hash<Key>,
      |                                  ^
p925.cpp:975:33: error: expected unqualified-id before '{' token
  975 |        class unordered_multiset {
      |                                 ^
p925.cpp:1132:14: error: 'hash' does not name a type; did you mean 'Hash'?
 1132 | class Hash = hash<iter_value_type<InputIterator>>,
      |              ^~~~
      |              Hash
p925.cpp:1132:18: error: expected '>' before '<' token
 1132 | class Hash = hash<iter_value_type<InputIterator>>,
      |                  ^
p925.cpp:1136:77: error: expected unqualified-id before ';' token
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                                             ^
p925.cpp:1137:10: error: 'ranges' has not been declared
 1137 | template<ranges::input_range R,
      |          ^~~~~~
p925.cpp:1137:30: error: expected '>' before 'R'
 1137 | template<ranges::input_range R,
      |                              ^
p925.cpp:1142:68: error: expected unqualified-id before ';' token
 1142 |                                      equal_range(const key_type& k);
      |                                                                    ^
p925.cpp:1143:56: error: 'key_type' does not name a type; did you mean 'key_t'?
 1143 |                                      equal_range(const key_type& k) const;
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:1143:74: error: expected constructor, destructor, or type conversion before ';' token
 1143 |                                      equal_range(const key_type& k) const;
      |                                                                          ^
p925.cpp:1144:56: error: 'K' does not name a type
 1144 |                                      equal_range(const K& k);
      |                                                        ^
p925.cpp:1144:61: error: expected constructor, destructor, or type conversion before ';' token
 1144 |                                      equal_range(const K& k);
      |                                                             ^
p925.cpp:1145:6: error: 'const_iterator' was not declared in this scope
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |      ^~~~~~~~~~~~~~
p925.cpp:1145:22: error: 'const_iterator' was not declared in this scope
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                      ^~~~~~~~~~~~~~
p925.cpp:1145:36: error: template argument 1 is invalid
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                    ^
p925.cpp:1145:36: error: template argument 2 is invalid
p925.cpp:1145:56: error: 'K' does not name a type
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                        ^
p925.cpp:1145:62: error: non-member function 'int pmr::std::equal_range(const int&)' cannot have cv-qualifier
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                              ^~~~~
p925.cpp:1146:26: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
 1146 |   pair<iterator, iterator>
      |                          ^
p925.cpp:1146:26: note:   expected a type, got 'iterator'
p925.cpp:1146:26: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:1146:26: note:   expected a type, got 'iterator'
p925.cpp:1147:1: error: expected unqualified-id before 'template'
 1147 | template<class K>
      | ^~~~~~~~
p925.cpp:1150:39: error: 'hash' does not name a type; did you mean 'Hash'?
 1150 |        template<class T, class Hash = hash<T>,
      |                                       ^~~~
      |                                       Hash
p925.cpp:1150:43: error: expected '>' before '<' token
 1150 |        template<class T, class Hash = hash<T>,
      |                                           ^
p925.cpp:1153:59: error: expected unqualified-id before ';' token
 1153 |            -> unordered_multiset<T, Hash, Pred, Allocator>;
      |                                                           ^
p925.cpp:1155:59: error: expected nested-name-specifier before 'see'
 1155 | unordered_multiset(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                           ^~~
p925.cpp:1155:63: error: expected ',' or '...' before 'below'
 1155 | unordered_multiset(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                               ^~~~~
p925.cpp:1156:4: error: 'unordered_multiset' does not name a type
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:1156:22: error: expected constructor, destructor, or type conversion before '<' token
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                      ^
p925.cpp:1158:118: error: expected nested-name-specifier before 'see'
 1158 |  class Hash, class Allocator> unordered_multiset(InputIterator, InputIterator, typename see below::size_type,
      |                                                                                         ^~~

p925.cpp:1158:122: error: expected ',' or '...' before 'below'
 1158 | ss Hash, class Allocator> unordered_multiset(InputIterator, InputIterator, typename see below::size_type,
      |                                                                                         ^~~~~

p925.cpp:1160:4: error: 'unordered_multiset' does not name a type
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:1160:22: error: expected constructor, destructor, or type conversion before '<' token
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                      ^
p925.cpp:1162:10: error: 'ranges' has not been declared
 1162 | template<ranges::input_range R, class Allocator>
      |          ^~~~~~
p925.cpp:1162:30: error: expected '>' before 'R'
 1162 | template<ranges::input_range R, class Allocator>
      |                              ^
p925.cpp:1163:19: error: expected constructor, destructor, or type conversion before '(' token
 1163 | unordered_multiset(from_range_t, R&&, typename see_below::size_type, Allocator)
      |                   ^
p925.cpp:1166:17: error: 'ranges' has not been declared
 1166 |        template<ranges::input_range R, class Allocator>
      |                 ^~~~~~
p925.cpp:1166:37: error: expected '>' before 'R'
 1166 |        template<ranges::input_range R, class Allocator>
      |                                     ^
p925.cpp:1167:28: error: expected constructor, destructor, or type conversion before '(' token
 1167 |          unordered_multiset(from_range_t, R&&, Allocator)
      |                            ^
p925.cpp:1170:10: error: 'ranges' has not been declared
 1170 | template<ranges::input_range R, class Hash, class Allocator> unordered_multiset(from_range_t, R&&, typename see_below::size_type, Hash, Allocator)
      |          ^~~~~~
p925.cpp:1170:30: error: expected '>' before 'R'
 1170 | template<ranges::input_range R, class Hash, class Allocator> unordered_multiset(from_range_t, R&&, typename see_below::size_type, Hash, Allocator)
      |                              ^
p925.cpp:1170:80: error: expected constructor, destructor, or type conversion before '(' token
 1170 | template<ranges::input_range R, class Hash, class Allocator> unordered_multiset(from_range_t, R&&, typename see_below::size_type, Hash, Allocator)
      |                                                                                ^
p925.cpp:1174:19: error: expected constructor, destructor, or type conversion before '(' token
 1174 | unordered_multiset(initializer_list<T>, typename see_below::size_type, Allocator)
      |                   ^
p925.cpp:1177:19: error: expected constructor, destructor, or type conversion before '(' token
 1177 | unordered_multiset(initializer_list<T>, typename see_below::size_type, Hash, Allocator)
      |                   ^
p925.cpp:1182:1: error: ISO C++ forbids declaration of 'unordered_multiset' with no type [-fpermissive]
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      | ^~~~~~~~~~~~~~~~~~
p925.cpp: In function 'int pmr::unordered_multiset()':
p925.cpp:1182:24: error: only constructors take member initializers
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                        ^~~~~~~~~~~~~~~~~~
p925.cpp:1182:53: error: 'see_below' was not declared in this scope
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                     ^~~~~~~~~
p925.cpp:1182:43: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                           ^~~~~~~~~
      |                                           size_t
p925.cpp:1182:67: warning: no return statement in function returning non-void [-Wreturn-type]
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                   ^
p925.cpp: At global scope:
p925.cpp:1182:78: error: ISO C++ forbids declaration of 'unordered_multiset' with no type [-fpermissive]
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                              ^~~~~~~~~~~~~~~~~~
p925.cpp:1182:69: error: 'explicit' outside class declaration
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                     ^~~~~~~~
p925.cpp:1182:97: error: 'int pmr::unordered_multiset' redeclared as different kind of entity
 1182 | d_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                                         ^~~~~~~~~

p925.cpp:1182:1: note: previous declaration 'int pmr::unordered_multiset()'
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      | ^~~~~~~~~~~~~~~~~~
p925.cpp:1182:97: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
 1182 | d_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                                         ^~~~~~~~~
      |                                                                                         size_t
p925.cpp:1183:1: error: expected primary-expression before 'const'
 1183 | const hasher& hf = hasher(),
      | ^~~~~
p925.cpp:1184:1: error: expected primary-expression before 'const'
 1184 | const key_equal& eql = key_equal(),
      | ^~~~~
p925.cpp:1185:1: error: expected primary-expression before 'const'
 1185 | const allocator_type& a = allocator_type());
      | ^~~~~
p925.cpp:1188:1: error: 'size_type' has not been declared
 1188 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:1188:15: error: 'see_below' was not declared in this scope
 1188 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:1189:7: error: 'hasher' does not name a type
 1189 | const hasher& hf = hasher(),
      |       ^~~~~~
p925.cpp:1189:20: error: there are no arguments to 'hasher' that depend on a template parameter, so a declaration of 'hasher' must be available [-fpermissive]
 1189 | const hasher& hf = hasher(),
      |                    ^~~~~~
p925.cpp:1190:7: error: 'key_equal' does not name a type
 1190 | const key_equal& eql = key_equal(),
      |       ^~~~~~~~~
p925.cpp:1190:24: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
 1190 | const key_equal& eql = key_equal(),
      |                        ^~~~~~~~~
p925.cpp:1191:7: error: 'allocator_type' does not name a type
 1191 | const allocator_type& a = allocator_type());
      |       ^~~~~~~~~~~~~~
p925.cpp:1191:27: error: there are no arguments to 'allocator_type' that depend on a template parameter, so a declaration of 'allocator_type' must be available [-fpermissive]
 1191 | const allocator_type& a = allocator_type());
      |                           ^~~~~~~~~~~~~~
p925.cpp:1191:44: error: expected constructor, destructor, or type conversion before ';' token
 1191 | const allocator_type& a = allocator_type());
      |                                            ^
p925.cpp:1192:10: error: 'container_compatible_range' has not been declared
 1192 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:1192:36: error: expected '>' before '<' token
 1192 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                    ^
p925.cpp:1192:70: error: expected constructor, destructor, or type conversion before '(' token
 1192 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                                                      ^
p925.cpp:1197:19: error: expected constructor, destructor, or type conversion before '(' token
 1197 | unordered_multiset(initializer_list<value_type> il, size_type n = see_below,
      |                   ^
p925.cpp:1205:12: error: expected nested-name-specifier before 'unordered_multiset'
 1205 |   typename unordered_multiset<K, H, P, A>::size_type
      |            ^~~~~~~~~~~~~~~~~~
p925.cpp:1205:30: error: expected initializer before '<' token
 1205 |   typename unordered_multiset<K, H, P, A>::size_type
      |                              ^
p925.cpp:1208:4: warning: 'auto' changes meaning in C++11; please remove it [-Wc++11-compat]
 1208 |    auto original_size = c.size();
      |    ^~~~
      |    ----
p925.cpp:1208:9: error: 'original_size' does not name a type
 1208 |    auto original_size = c.size();
      |         ^~~~~~~~~~~~~
p925.cpp:1209:4: error: expected unqualified-id before 'for'
 1209 |    for (auto i = c.begin(), last = c.end(); i != last; ) {
      |    ^~~
p925.cpp:1209:45: error: 'i' does not name a type
 1209 |    for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                             ^
p925.cpp:1209:56: error: expected unqualified-id before ')' token
 1209 |    for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                        ^
p925.cpp:1214:4: error: expected unqualified-id before 'return'
 1214 |    return original_size - c.size();
      |    ^~~~~~
p925.cpp: In function 'int pmr::main()':
p925.cpp:1217:13: error: 'n4910' was not declared in this scope
 1217 |   cout  <<  n4910 << endl;
      |             ^~~~~
p925.cpp: At global scope:
p925.cpp:1219:2: error: expected '}' at end of input
 1219 | }
      |  ^
p925.cpp:55:15: note: to match this '{'
   55 | namespace pmr {
      |               ^

$ g++ p925.cpp -std=2b -o p925g -I. -Wall
p925.cpp:1:1: error: stray '`' in program
    1 | ```c++:p925.cpp
      | ^
p925.cpp:1:2: error: stray '`' in program
    1 | ```c++:p925.cpp
      |  ^
p925.cpp:1:3: error: stray '`' in program
    1 | ```c++:p925.cpp
      |   ^
p925.cpp:337:18: error: stray '\' in program
  337 | template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
      |                  ^
p925.cpp:897:252: error: too many decimal points in number
  897 | efault constructor, the number of buckets is implementation-defined. max_load_factor() returns 1.0.
      |                                                                                                ^~~~

p925.cpp:1:4: error: 'c' does not name a type
    1 | ```c++:p925.cpp
      |    ^
p925.cpp:23:24: error: expected unqualified-id before ',' token
   23 |                 class T,
      |                        ^
p925.cpp:24:17: error: expected unqualified-id before 'class'
   24 |                 class Hash = hash<Key>,
      |                 ^~~~~
p925.cpp:29:24: error: expected unqualified-id before ',' token
   29 |                 class T,
      |                        ^
p925.cpp:30:17: error: expected unqualified-id before 'class'
   30 |                 class Hash = hash<Key>,
      |                 ^~~~~
p925.cpp:54:3: error: expected declaration before '}' token
   54 | } }
      |   ^
p925.cpp:62:26: error: 'polymorphic_allocator' was not declared in this scope; did you mean 'std::pmr::polymorphic_allocator'?
   62 |                          polymorphic_allocator<pair<const Key, T>>>;
      |                          ^~~~~~~~~~~~~~~~~~~~~
      |                          std::pmr::polymorphic_allocator
In file included from /usr/local/include/c++/12.1.0/bits/locale_classes.h:40,
                 from /usr/local/include/c++/12.1.0/bits/ios_base.h:41,
                 from /usr/local/include/c++/12.1.0/ios:42,
                 from /usr/local/include/c++/12.1.0/ostream:38,
                 from /usr/local/include/c++/12.1.0/iostream:39,
                 from N4910.h:2,
                 from p925.cpp:11:
/usr/local/include/c++/12.1.0/string:61:34: note: 'std::pmr::polymorphic_allocator' declared here
   61 |     template<typename _Tp> class polymorphic_allocator;
      |                                  ^~~~~~~~~~~~~~~~~~~~~
p925.cpp:62:65: error: template argument 5 is invalid
   62 |                          polymorphic_allocator<pair<const Key, T>>>;
      |                                                                 ^~
p925.cpp:61:12: error: '<expression error>' in namespace 'std' does not name a type
   61 |       std::unordered_map<Key, T, Hash, Pred,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   62 |                          polymorphic_allocator<pair<const Key, T>>>;
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:69:33: error: 'polymorphic_allocator' was not declared in this scope; did you mean 'std::pmr::polymorphic_allocator'?
   69 |                                 polymorphic_allocator<pair<const Key, T>>>;
      |                                 ^~~~~~~~~~~~~~~~~~~~~
      |                                 std::pmr::polymorphic_allocator
/usr/local/include/c++/12.1.0/string:61:34: note: 'std::pmr::polymorphic_allocator' declared here
   61 |     template<typename _Tp> class polymorphic_allocator;
      |                                  ^~~~~~~~~~~~~~~~~~~~~
p925.cpp:69:72: error: template argument 5 is invalid
   69 |                                 polymorphic_allocator<pair<const Key, T>>>;
      |                                                                        ^~
p925.cpp:68:14: error: '<expression error>' in namespace 'std' does not name a type
   68 |         std::unordered_multimap<Key, T, Hash, Pred,
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   69 |                                 polymorphic_allocator<pair<const Key, T>>>;
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:75:23: error: expected unqualified-id before '=' token
   75 |            class Hash = hash<Key>,
      |                       ^
p925.cpp:80:23: error: expected unqualified-id before '=' token
   80 |            class Hash = hash<Key>,
      |                       ^
p925.cpp:85:27: error: 'unordered_set' does not name a type
   85 |     bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a,
      |                           ^~~~~~~~~~~~~
p925.cpp:85:40: error: expected ',' or '...' before '<' token
   85 |     bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a,
      |                                        ^
p925.cpp:85:10: error: 'bool pmr::std::operator==(int)' must have an argument of class or enumerated type
   85 |     bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a,
      |          ^~~~~~~~
p925.cpp:88:27: error: 'unordered_multiset' does not name a type
   88 |     bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a,
      |                           ^~~~~~~~~~~~~~~~~~
p925.cpp:88:45: error: expected ',' or '...' before '<' token
   88 |     bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a,
      |                                             ^
p925.cpp:88:10: error: 'bool pmr::std::operator==(int)' must have an argument of class or enumerated type
   88 |     bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a,
      |          ^~~~~~~~
p925.cpp:91:10: error: variable or field 'swap' declared void
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |          ^~~~
p925.cpp:91:15: error: 'unordered_set' was not declared in this scope
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |               ^~~~~~~~~~~~~
p925.cpp:12:1: note: 'std::unordered_set' is defined in header '<unordered_set>'; did you forget to '#include <unordered_set>'?
   11 | #include "N4910.h"
  +++ |+#include <unordered_set>
   12 | 
p925.cpp:91:32: error: expected primary-expression before ',' token
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                ^
p925.cpp:91:38: error: expected primary-expression before ',' token
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                      ^
p925.cpp:91:44: error: expected primary-expression before ',' token
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                            ^
p925.cpp:91:51: error: expected primary-expression before '>' token
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                                   ^
p925.cpp:91:54: error: 'x' was not declared in this scope
   91 |     void swap(unordered_set<Key, Hash, Pred, Alloc>& x,
      |                                                      ^
p925.cpp:92:15: error: 'unordered_set' was not declared in this scope
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |               ^~~~~~~~~~~~~
p925.cpp:92:15: note: 'std::unordered_set' is defined in header '<unordered_set>'; did you forget to '#include <unordered_set>'?
p925.cpp:92:32: error: expected primary-expression before ',' token
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                ^
p925.cpp:92:38: error: expected primary-expression before ',' token
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                      ^
p925.cpp:92:44: error: expected primary-expression before ',' token
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                            ^
p925.cpp:92:51: error: expected primary-expression before '>' token
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                                   ^
p925.cpp:92:54: error: 'y' was not declared in this scope; did you mean 'yn'?
   92 |               unordered_set<Key, Hash, Pred, Alloc>& y)
      |                                                      ^
      |                                                      yn
p925.cpp:95:10: error: variable or field 'swap' declared void
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |          ^~~~
p925.cpp:95:15: error: 'unordered_multiset' was not declared in this scope
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |               ^~~~~~~~~~~~~~~~~~
p925.cpp:95:15: note: 'std::unordered_multiset' is defined in header '<unordered_set>'; did you forget to '#include <unordered_set>'?
p925.cpp:95:37: error: expected primary-expression before ',' token
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                     ^
p925.cpp:95:43: error: expected primary-expression before ',' token
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                           ^
p925.cpp:95:49: error: expected primary-expression before ',' token
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                                 ^
p925.cpp:95:56: error: expected primary-expression before '>' token
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                                        ^
p925.cpp:95:59: error: 'x' was not declared in this scope
   95 |     void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x,
      |                                                           ^
p925.cpp:96:15: error: 'unordered_multiset' was not declared in this scope
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |               ^~~~~~~~~~~~~~~~~~
p925.cpp:96:15: note: 'std::unordered_multiset' is defined in header '<unordered_set>'; did you forget to '#include <unordered_set>'?
p925.cpp:96:37: error: expected primary-expression before ',' token
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                     ^
p925.cpp:96:43: error: expected primary-expression before ',' token
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                           ^
p925.cpp:96:49: error: expected primary-expression before ',' token
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                                 ^
p925.cpp:96:56: error: expected primary-expression before '>' token
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                                        ^
p925.cpp:96:59: error: 'y' was not declared in this scope; did you mean 'yn'?
   96 |               unordered_multiset<Key, Hash, Pred, Alloc>& y)
      |                                                           ^
      |                                                           yn
p925.cpp:99:14: error: expected nested-name-specifier before 'unordered_set'
   99 |     typename unordered_set<K, H, P, A>::size_type
      |              ^~~~~~~~~~~~~
p925.cpp:99:27: error: expected initializer before '<' token
   99 |     typename unordered_set<K, H, P, A>::size_type
      |                           ^
p925.cpp:102:14: error: expected nested-name-specifier before 'unordered_multiset'
  102 |     typename unordered_multiset<K, H, P, A>::size_type
      |              ^~~~~~~~~~~~~~~~~~
p925.cpp:102:32: error: expected initializer before '<' token
  102 |     typename unordered_multiset<K, H, P, A>::size_type
      |                                ^
p925.cpp:108:32: error: 'unordered_set' in namespace 'pmr::std' does not name a template type
  108 |     using unordered_set = std::unordered_set<Key, Hash, Pred,
      |                                ^~~~~~~~~~~~~
p925.cpp:113:37: error: 'unordered_multiset' in namespace 'pmr::std' does not name a template type
  113 |     using unordered_multiset = std::unordered_multiset<Key, Hash, Pred,
      |                                     ^~~~~~~~~~~~~~~~~~
p925.cpp:120:1: error: 'tables' does not name a type
  120 | tables, or for which there is additional semantic information.
      | ^~~~~~
p925.cpp:131:20: error: 'Key' does not name a type
  131 |   using key_type = Key;
      |                    ^~~
p925.cpp:133:33: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
  133 |   using value_type = pair<const Key, T>;
      |                                 ^~~
p925.cpp:133:39: error: wrong number of template arguments (1, should be 2)
  133 |   using value_type = pair<const Key, T>;
      |                                       ^
In file included from /usr/local/include/c++/12.1.0/string:47:
/usr/local/include/c++/12.1.0/bits/stl_iterator.h:2547:12: note: provided for 'template<class _T1, class _T2> struct std::pair'
 2547 |     struct pair;
      |            ^~~~
p925.cpp:135:21: error: 'Pred' does not name a type
  135 |   using key_equal = Pred;
      |                     ^~~~
p925.cpp:136:26: error: 'Allocator' does not name a type; did you mean 'alloca'?
  136 |   using allocator_type = Allocator;
      |                          ^~~~~~~~~
      |                          alloca
p925.cpp:137:45: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  137 |   using pointer = typename allocator_traits<Allocator>::pointer;
      |                                             ^~~~~~~~~
      |                                             alloca
p925.cpp:137:54: error: template argument 1 is invalid
  137 |   using pointer = typename allocator_traits<Allocator>::pointer;
      |                                                      ^
p925.cpp:138:51: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  138 |   using const_pointer = typename allocator_traits<Allocator>::const_pointer;
      |                                                   ^~~~~~~~~
      |                                                   alloca
p925.cpp:138:60: error: template argument 1 is invalid
  138 |   using const_pointer = typename allocator_traits<Allocator>::const_pointer;
      |                                                            ^
p925.cpp:139:22: error: 'value_type' does not name a type
  139 |   using reference  = value_type&;
      |                      ^~~~~~~~~~
p925.cpp:140:33: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
  140 |   using const_reference = const value_type&;
      |                                 ^~~~~~~~~~
p925.cpp:140:32: error: expected ';' before 'value_type'
  140 |   using const_reference = const value_type&;
      |                                ^~~~~~~~~~~
      |                                ;
p925.cpp:141:21: error: 'implementation_defined' does not name a type
  141 |   using size_type = implementation_defined ; // see 24.2
      |                     ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:142:27: error: 'implementation_defined' does not name a type
  142 |   using difference_type = implementation_defined ; // see 24.2
      |                           ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:143:20: error: 'implementation_defined' does not name a type
  143 |   using iterator = implementation_defined ; // see 24.2
      |                    ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:144:26: error: 'implementation_defined' does not name a type
  144 |   using const_iterator = implementation_defined ; // see 24.2
      |                          ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:145:26: error: 'implementation_defined' does not name a type
  145 |   using local_iterator = implementation_defined ; // see 24.2
      |                          ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:146:32: error: 'implementation_defined' does not name a type
  146 |   using const_local_iterator = implementation_defined ; // see 24.2
      |                                ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:147:21: error: 'unspecified' does not name a type
  147 |   using node_type = unspecified;
      |                     ^~~~~~~~~~~
p925.cpp:148:30: error: 'insert' does not name a type; did you mean 'assert'?
  148 |   using insert_return_type = insert-return-type<iterator, node_type>; // // 24.5.4.2, construct/copy/destroy
      |                              ^~~~~~
      |                              assert
p925.cpp:150:33: error: expected ')' before 'n'
  150 | explicit unordered_map(size_type n,
      |                       ~         ^~
      |                                 )
p925.cpp:155:49: error: 'size_type' has not been declared
  155 | unordered_map(InputIterator f, InputIterator l, size_type n = see below,
      |                                                 ^~~~~~~~~
p925.cpp:157:23: error: 'key_equal' does not name a type
  157 |                 const key_equal& eql = key_equal(),
      |                       ^~~~~~~~~
p925.cpp:158:23: error: 'allocator_type' does not name a type
  158 |                 const allocator_type& a = allocator_type());
      |                       ^~~~~~~~~~~~~~
p925.cpp:159:10: error: 'container' has not been declared
  159 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg, size_type n = see below,
      |          ^~~~~~~~~
p925.cpp:159:19: error: expected '>' before '-' token
  159 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg, size_type n = see below,
      |                   ^
p925.cpp:159:78: error: expected ')' before ',' token
  159 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg, size_type n = see below,
      |                                                                 ~            ^
      |                                                                              )
p925.cpp:164:30: error: 'Allocator' does not name a type; did you mean 'alloca'?
  164 | explicit unordered_map(const Allocator&);
      |                              ^~~~~~~~~
      |                              alloca
p925.cpp:165:59: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  165 | unordered_map(const unordered_map&, const type_identity_t<Allocator>&);
      |                                                           ^~~~~~~~~
      |                                                           alloca
p925.cpp:165:68: error: template argument 1 is invalid
  165 | unordered_map(const unordered_map&, const type_identity_t<Allocator>&);
      |                                                                    ^
p925.cpp:166:54: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  166 | unordered_map(unordered_map&&, const type_identity_t<Allocator>&);
      |                                                      ^~~~~~~~~
      |                                                      alloca
p925.cpp:166:63: error: template argument 1 is invalid
  166 | unordered_map(unordered_map&&, const type_identity_t<Allocator>&);
      |                                                               ^
p925.cpp:167:32: error: 'value_type' was not declared in this scope
  167 | unordered_map(initializer_list<value_type> il,
      |                                ^~~~~~~~~~
p925.cpp:167:42: error: template argument 1 is invalid
  167 | unordered_map(initializer_list<value_type> il,
      |                                          ^
p925.cpp:168:1: error: 'size_type' has not been declared
  168 | size_type n = see below,
      | ^~~~~~~~~
p925.cpp:170:7: error: 'key_equal' does not name a type
  170 | const key_equal& eql = key_equal(),
      |       ^~~~~~~~~
p925.cpp:171:7: error: 'allocator_type' does not name a type
  171 | const allocator_type& a = allocator_type());
      |       ^~~~~~~~~~~~~~
p925.cpp:172:24: error: expected ')' before 'n'
  172 | unordered_map(size_type n, const allocator_type& a)
      |              ~         ^~
      |                        )
p925.cpp:174:24: error: expected ')' before 'n'
  174 | unordered_map(size_type n, const hasher& hf, const allocator_type& a)
      |              ~         ^~
      |                        )
p925.cpp:177:51: error: 'size_type' has not been declared
  177 |   unordered_map(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
      |                                                   ^~~~~~~~~
p925.cpp:177:70: error: 'allocator_type' does not name a type
  177 |   unordered_map(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
      |                                                                      ^~~~~~~~~~~~~~
p925.cpp:180:51: error: 'size_type' has not been declared
  180 |   unordered_map(InputIterator f, InputIterator l, size_type n, const hasher& hf,
      |                                                   ^~~~~~~~~
p925.cpp:181:23: error: 'allocator_type' does not name a type
  181 |                 const allocator_type& a)
      |                       ^~~~~~~~~~~~~~
p925.cpp:182:59: error: 'container' has not been declared
  182 | : unordered_map(f, l, n, hf, key_equal(), a) { } template<container-compatible-range<value_type> R>
      |                                                           ^~~~~~~~~
p925.cpp:182:68: error: expected '>' before '-' token
  182 | : unordered_map(f, l, n, hf, key_equal(), a) { } template<container-compatible-range<value_type> R>
      |                                                                    ^
p925.cpp:183:29: error: expected ')' before ',' token
  183 |   unordered_map(from_range_t, R&& rg, size_type n, const allocator_type& a)
      |                ~            ^
      |                             )
p925.cpp:185:10: error: 'container' has not been declared
  185 | template<container-compatible-range<value_type> R>
      |          ^~~~~~~~~
p925.cpp:185:19: error: expected '>' before '-' token
  185 | template<container-compatible-range<value_type> R>
      |                   ^
p925.cpp:186:27: error: expected ')' before ',' token
  186 | unordered_map(from_range_t, R&& rg, size_type n, const hasher& hf, const allocator_type& a)
      |              ~            ^
      |                           )
p925.cpp:188:32: error: 'value_type' was not declared in this scope
  188 | unordered_map(initializer_list<value_type> il, size_type n, const allocator_type& a)
      |                                ^~~~~~~~~~
p925.cpp:188:42: error: template argument 1 is invalid
  188 | unordered_map(initializer_list<value_type> il, size_type n, const allocator_type& a)
      |                                          ^
p925.cpp:188:48: error: 'size_type' has not been declared
  188 | unordered_map(initializer_list<value_type> il, size_type n, const allocator_type& a)
      |                                                ^~~~~~~~~
p925.cpp:188:67: error: 'allocator_type' does not name a type
  188 | unordered_map(initializer_list<value_type> il, size_type n, const allocator_type& a)
      |                                                                   ^~~~~~~~~~~~~~
p925.cpp:190:32: error: 'value_type' was not declared in this scope
  190 | unordered_map(initializer_list<value_type> il, size_type n, const hasher& hf,
      |                                ^~~~~~~~~~
p925.cpp:190:42: error: template argument 1 is invalid
  190 | unordered_map(initializer_list<value_type> il, size_type n, const hasher& hf,
      |                                          ^
p925.cpp:190:48: error: 'size_type' has not been declared
  190 | unordered_map(initializer_list<value_type> il, size_type n, const hasher& hf,
      |                                                ^~~~~~~~~
p925.cpp:191:21: error: 'allocator_type' does not name a type
  191 |               const allocator_type& a)
      |                     ^~~~~~~~~~~~~~
p925.cpp:198:43: error: 'value_type' was not declared in this scope
  198 | unordered_map& operator=(initializer_list<value_type>);
      |                                           ^~~~~~~~~~
p925.cpp:198:53: error: template argument 1 is invalid
  198 | unordered_map& operator=(initializer_list<value_type>);
      |                                                     ^
p925.cpp:199:1: error: 'allocator_type' does not name a type
  199 | allocator_type get_allocator() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:201:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  201 | iterator       begin() noexcept;
      | ^~~~~~~~
In file included from /usr/local/include/c++/12.1.0/bits/stl_construct.h:61,
                 from /usr/local/include/c++/12.1.0/bits/char_traits.h:46,
                 from /usr/local/include/c++/12.1.0/ios:40:
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:201:1: error: deduced class type 'iterator' in function return type
  201 | iterator       begin() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:202:1: error: 'const_iterator' does not name a type
  202 | const_iterator begin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:203:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  203 | iterator       end() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:203:1: error: deduced class type 'iterator' in function return type
  203 | iterator       end() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:204:1: error: 'const_iterator' does not name a type
  204 | const_iterator end() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:205:1: error: 'const_iterator' does not name a type
  205 | const_iterator cbegin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:206:1: error: 'const_iterator' does not name a type
  206 | const_iterator cend() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:209:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  209 | size_type size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:210:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  210 | size_type max_size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:212:30: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  212 | template<class... Args> pair<iterator, bool> emplace(Args&&... args);
      |                              ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:212:44: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  212 | template<class... Args> pair<iterator, bool> emplace(Args&&... args);
      |                                            ^
p925.cpp:212:44: note:   expected a type, got 'iterator'
p925.cpp:213:25: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  213 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:213:47: error: 'const_iterator' has not been declared
  213 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                               ^~~~~~~~~~~~~~
p925.cpp:213:25: error: deduced class type 'iterator' in function return type
  213 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:213:94: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  213 | ate<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                                                                         ^~~~~~~~

/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:213:108: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  213 | rgs> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                                                                         ^

p925.cpp:213:108: note:   expected a type, got 'iterator'
p925.cpp:213:123: error: 'value_type' does not name a type
  213 | mplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                                                                         ^~~~~~~~~~

p925.cpp:214:6: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  214 | pair<iterator, bool> insert(value_type&& obj);
      |      ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:214:20: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  214 | pair<iterator, bool> insert(value_type&& obj);
      |                    ^
p925.cpp:214:20: note:   expected a type, got 'iterator'
p925.cpp:214:29: error: 'value_type' has not been declared
  214 | pair<iterator, bool> insert(value_type&& obj);
      |                             ^~~~~~~~~~
p925.cpp:215:24: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  215 | template<class P> pair<iterator, bool> insert(P&& obj);
      |                        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:215:38: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  215 | template<class P> pair<iterator, bool> insert(P&& obj);
      |                                      ^
p925.cpp:215:38: note:   expected a type, got 'iterator'
p925.cpp:216:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  216 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:216:17: error: 'const_iterator' has not been declared
  216 | iterator insert(const_iterator hint, const value_type& obj);
      |                 ^~~~~~~~~~~~~~
p925.cpp:216:44: error: 'value_type' does not name a type
  216 | iterator insert(const_iterator hint, const value_type& obj);
      |                                            ^~~~~~~~~~
p925.cpp:216:1: error: deduced class type 'iterator' in function return type
  216 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:217:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  217 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:217:17: error: 'const_iterator' has not been declared
  217 | iterator insert(const_iterator hint, value_type&& obj);
      |                 ^~~~~~~~~~~~~~
p925.cpp:217:38: error: 'value_type' has not been declared
  217 | iterator insert(const_iterator hint, value_type&& obj);
      |                                      ^~~~~~~~~~
p925.cpp:217:1: error: deduced class type 'iterator' in function return type
  217 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:218:19: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  218 | template<class P> iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:218:35: error: 'const_iterator' has not been declared
  218 | template<class P> iterator insert(const_iterator hint, P&& obj);
      |                                   ^~~~~~~~~~~~~~
p925.cpp:218:19: error: deduced class type 'iterator' in function return type
  218 | template<class P> iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:219:94: error: 'container' has not been declared
  219 | ate<class InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^~~~~~~~~

p925.cpp:219:103: error: expected '>' before '-' token
  219 |  InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^

p925.cpp:220:21: error: 'R' has not been declared
  220 |   void insert_range(R&& rg);
      |                     ^
p925.cpp:221:30: error: 'value_type' was not declared in this scope
  221 | void insert(initializer_list<value_type>);
      |                              ^~~~~~~~~~
p925.cpp:221:40: error: template argument 1 is invalid
  221 | void insert(initializer_list<value_type>);
      |                                        ^
p925.cpp:222:1: error: 'node_type' does not name a type
  222 | node_type extract(const_iterator position);
      | ^~~~~~~~~
p925.cpp:223:1: error: 'node_type' does not name a type
  223 | node_type extract(const key_type& x);
      | ^~~~~~~~~
p925.cpp:224:19: error: 'node_type' does not name a type
  224 | template<class K> node_type extract(K&& x);
      |                   ^~~~~~~~~
p925.cpp:225:1: error: 'insert_return_type' does not name a type
  225 | insert_return_type insert(node_type&& nh);
      | ^~~~~~~~~~~~~~~~~~
p925.cpp:226:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  226 | iterator           insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:226:27: error: 'const_iterator' has not been declared
  226 | iterator           insert(const_iterator hint, node_type&& nh);
      |                           ^~~~~~~~~~~~~~
p925.cpp:226:48: error: 'node_type' has not been declared
  226 | iterator           insert(const_iterator hint, node_type&& nh);
      |                                                ^~~~~~~~~
p925.cpp:226:1: error: deduced class type 'iterator' in function return type
  226 | iterator           insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:228:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  228 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:228:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  228 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                      ^
p925.cpp:228:22: note:   expected a type, got 'iterator'
p925.cpp:228:42: error: 'key_type' does not name a type; did you mean 'key_t'?
  228 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                                          ^~~~~~~~
      |                                          key_t
p925.cpp:230:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  230 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:230:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  230 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                      ^
p925.cpp:230:22: note:   expected a type, got 'iterator'
p925.cpp:230:36: error: 'key_type' has not been declared
  230 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                    ^~~~~~~~
p925.cpp:232:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  232 |   iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:232:24: error: 'const_iterator' has not been declared
  232 |   iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |                        ^~~~~~~~~~~~~~
p925.cpp:232:51: error: 'key_type' does not name a type; did you mean 'key_t'?
  232 |   iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |                                                   ^~~~~~~~
      |                                                   key_t
p925.cpp:232:3: error: deduced class type 'iterator' in function return type
  232 |   iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:234:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  234 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:234:24: error: 'const_iterator' has not been declared
  234 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |                        ^~~~~~~~~~~~~~
p925.cpp:234:45: error: 'key_type' has not been declared
  234 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |                                             ^~~~~~~~
p925.cpp:234:3: error: deduced class type 'iterator' in function return type
  234 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:236:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  236 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:236:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  236 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                      ^
p925.cpp:236:22: note:   expected a type, got 'iterator'
p925.cpp:236:47: error: 'key_type' does not name a type; did you mean 'key_t'?
  236 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                                               ^~~~~~~~
      |                                               key_t
p925.cpp:238:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  238 |   pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:238:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  238 |   pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
      |                      ^
p925.cpp:238:22: note:   expected a type, got 'iterator'
p925.cpp:238:41: error: 'key_type' has not been declared
  238 |   pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
      |                                         ^~~~~~~~
p925.cpp:240:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  240 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:240:29: error: 'const_iterator' has not been declared
  240 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |                             ^~~~~~~~~~~~~~
p925.cpp:240:56: error: 'key_type' does not name a type; did you mean 'key_t'?
  240 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:240:3: error: deduced class type 'iterator' in function return type
  240 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:242:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  242 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:242:29: error: 'const_iterator' has not been declared
  242 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |                             ^~~~~~~~~~~~~~
p925.cpp:242:50: error: 'key_type' has not been declared
  242 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |                                                  ^~~~~~~~
p925.cpp:242:3: error: deduced class type 'iterator' in function return type
  242 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:243:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  243 | iterator  erase(iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:243:17: error: class template placeholder 'std::iterator' not permitted in this context
  243 | iterator  erase(iterator position);
      |                 ^~~~~~~~
p925.cpp:243:17: note: use 'auto' for an abbreviated function template
p925.cpp:243:1: error: deduced class type 'iterator' in function return type
  243 | iterator  erase(iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:244:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  244 | iterator  erase(const_iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:244:17: error: 'const_iterator' has not been declared
  244 | iterator  erase(const_iterator position);
      |                 ^~~~~~~~~~~~~~
p925.cpp:244:1: error: deduced class type 'iterator' in function return type
  244 | iterator  erase(const_iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:245:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  245 | size_type erase(const key_type& k);
      | ^~~~~~~~~
      | size_t
p925.cpp:246:19: error: 'size_type' does not name a type; did you mean 'size_t'?
  246 | template<class K> size_type erase(K&& x);
      |                   ^~~~~~~~~
      |                   size_t
p925.cpp:247:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  247 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:247:17: error: 'const_iterator' has not been declared
  247 | iterator  erase(const_iterator first, const_iterator last);
      |                 ^~~~~~~~~~~~~~
p925.cpp:247:39: error: 'const_iterator' has not been declared
  247 | iterator  erase(const_iterator first, const_iterator last);
      |                                       ^~~~~~~~~~~~~~
p925.cpp:247:1: error: deduced class type 'iterator' in function return type
  247 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:254:14: error: 'pmr::std::unordered_map' is not a template
  254 |   void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
      |              ^~~~~~~~~~~~~
p925.cpp:254:28: error: 'Key' was not declared in this scope
  254 |   void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
      |                            ^~~
p925.cpp:254:44: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  254 |   void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
      |                                            ^~~~~~~~~
      |                                            alloca
p925.cpp:256:14: error: 'pmr::std::unordered_map' is not a template
  256 |   void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
      |              ^~~~~~~~~~~~~
p925.cpp:256:28: error: 'Key' was not declared in this scope
  256 |   void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
      |                            ^~~
p925.cpp:256:44: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  256 |   void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
      |                                            ^~~~~~~~~
      |                                            alloca
p925.cpp:258:33: error: 'Key' was not declared in this scope
  258 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>& source);
      |                                 ^~~
p925.cpp:258:49: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  258 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>& source);
      |                                                 ^~~~~~~~~
      |                                                 alloca
p925.cpp:258:58: error: template argument 1 is invalid
  258 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>& source);
      |                                                          ^
p925.cpp:258:58: error: template argument 5 is invalid
p925.cpp:260:33: error: 'Key' was not declared in this scope
  260 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>&& source);
      |                                 ^~~
p925.cpp:260:49: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  260 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>&& source);
      |                                                 ^~~~~~~~~
      |                                                 alloca
p925.cpp:260:58: error: template argument 1 is invalid
  260 |   void merge(unordered_multimap<Key, T, H2, P2, Allocator>&& source);
      |                                                          ^
p925.cpp:260:58: error: template argument 5 is invalid
p925.cpp:263:1: error: 'key_equal' does not name a type
  263 | key_equal key_eq() const;
      | ^~~~~~~~~
p925.cpp:265:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  265 | iterator
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:265:1: error: invalid use of template-name 'std::iterator' without an argument list
  265 | iterator
      | ^~~~~~~~
p925.cpp:266:1: error: expected ';' at end of member declaration
  266 | const_iterator
      | ^~~~~~~~~~~~~~
      |               ;
p925.cpp:268:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  268 |   iterator
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:269:1: error: expected unqualified-id before 'template'
  269 | template<class K>
      | ^~~~~~~~
p925.cpp:271:12: error: 'key_type' does not name a type; did you mean 'key_t'?
  271 | find(const key_type& k) const;
      |            ^~~~~~~~
      |            key_t
p925.cpp:271:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
  271 | find(const key_type& k) const;
      | ^~~~
p925.cpp:272:12: error: 'K' does not name a type
  272 | find(const K& k);
      |            ^
p925.cpp:272:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
  272 | find(const K& k);
      | ^~~~
p925.cpp:273:3: error: 'const_iterator' does not name a type
  273 |   const_iterator find(const K& k) const;
      |   ^~~~~~~~~~~~~~
p925.cpp:275:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  275 | size_type        count(const key_type& k) const;
      | ^~~~~~~~~
      | size_t
p925.cpp:277:3: error: 'size_type' does not name a type; did you mean 'size_t'?
  277 |   size_type      count(const K& k) const;
      |   ^~~~~~~~~
      |   size_t
p925.cpp:278:33: error: 'key_type' does not name a type; did you mean 'key_t'?
  278 | bool             contains(const key_type& k) const;
      |                                 ^~~~~~~~
      |                                 key_t
p925.cpp:281:12: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  281 |       pair<iterator, iterator>
      |            ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:281:22: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  281 |       pair<iterator, iterator>
      |                      ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:281:30: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  281 |       pair<iterator, iterator>
      |                              ^
p925.cpp:281:30: note:   expected a type, got 'iterator'
p925.cpp:281:30: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:281:30: note:   expected a type, got 'iterator'
p925.cpp:282:12: error: invalid use of non-static data member 'pmr::std::unordered_map::const_iterator'
  282 |       pair<const_iterator, const_iterator>
      |            ^~~~~~~~~~~~~~
p925.cpp:266:1: note: declared here
  266 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:282:28: error: invalid use of non-static data member 'pmr::std::unordered_map::const_iterator'
  282 |       pair<const_iterator, const_iterator>
      |                            ^~~~~~~~~~~~~~
p925.cpp:266:1: note: declared here
  266 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:282:42: error: template argument 1 is invalid
  282 |       pair<const_iterator, const_iterator>
      |                                          ^
p925.cpp:282:42: error: template argument 2 is invalid
p925.cpp:285:69: error: 'key_type' has not been declared
  285 | mapped_type& operator[](const key_type& k); mapped_type& operator[](key_type&& k); mapped_type& at(const key_type& k);
      |                                                                     ^~~~~~~~
p925.cpp:285:106: error: 'key_type' does not name a type; did you mean 'key_t'?
  285 | ator[](const key_type& k); mapped_type& operator[](key_type&& k); mapped_type& at(const key_type& k);
      |                                                                                         ^~~~~~~~
      |                                                                                         key_t
p925.cpp:286:29: error: 'key_type' does not name a type; did you mean 'key_t'?
  286 | const mapped_type& at(const key_type& k) const;
      |                             ^~~~~~~~
      |                             key_t
p925.cpp:288:7: error: 'size_type' does not name a type; did you mean 'size_t'?
  288 |       size_type bucket_count() const noexcept;
      |       ^~~~~~~~~
      |       size_t
p925.cpp:289:7: error: 'size_type' does not name a type; did you mean 'size_t'?
  289 |       size_type max_bucket_count() const noexcept;
      |       ^~~~~~~~~
      |       size_t
p925.cpp:290:7: error: 'size_type' does not name a type; did you mean 'size_t'?
  290 |       size_type bucket_size(size_type n) const;
      |       ^~~~~~~~~
      |       size_t
p925.cpp:291:7: error: 'size_type' does not name a type; did you mean 'size_t'?
  291 |       size_type bucket(const key_type& k) const;
      |       ^~~~~~~~~
      |       size_t
p925.cpp:292:7: error: 'local_iterator' does not name a type
  292 |       local_iterator begin(size_type n);
      |       ^~~~~~~~~~~~~~
p925.cpp:293:7: error: 'const_local_iterator' does not name a type
  293 |       const_local_iterator begin(size_type n) const;
      |       ^~~~~~~~~~~~~~~~~~~~
p925.cpp:294:7: error: 'local_iterator' does not name a type
  294 |       local_iterator end(size_type n);
      |       ^~~~~~~~~~~~~~
p925.cpp:295:7: error: 'const_local_iterator' does not name a type
  295 |       const_local_iterator end(size_type n) const;
      |       ^~~~~~~~~~~~~~~~~~~~
p925.cpp:296:7: error: 'const_local_iterator' does not name a type
  296 |       const_local_iterator cbegin(size_type n) const;
      |       ^~~~~~~~~~~~~~~~~~~~
p925.cpp:297:7: error: 'const_local_iterator' does not name a type
  297 |       const_local_iterator cend(size_type n) const;
      |       ^~~~~~~~~~~~~~~~~~~~
p925.cpp:302:19: error: 'size_type' has not been declared
  302 |       void rehash(size_type n);
      |                   ^~~~~~~~~
p925.cpp:303:20: error: 'size_type' has not been declared
  303 |       void reserve(size_type n);
      |                    ^~~~~~~~~
p925.cpp:155:63: error: 'see' was not declared in this scope
  155 | unordered_map(InputIterator f, InputIterator l, size_type n = see below,
      |                                                               ^~~
p925.cpp:157:40: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  157 |                 const key_equal& eql = key_equal(),
      |                                        ^~~~~~~~~
p925.cpp:157:40: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
p925.cpp:158:43: error: there are no arguments to 'allocator_type' that depend on a template parameter, so a declaration of 'allocator_type' must be available [-fpermissive]
  158 |                 const allocator_type& a = allocator_type());
      |                                           ^~~~~~~~~~~~~~
p925.cpp:168:15: error: 'see' was not declared in this scope
  168 | size_type n = see below,
      |               ^~~
p925.cpp:169:27: error: invalid use of incomplete type 'using hasher = class pmr::std::Hash' {aka 'class pmr::std::Hash'}
  169 | const hasher& hf = hasher(),
      |                           ^
p925.cpp:75:18: note: forward declaration of 'using hasher = class pmr::std::Hash' {aka 'class pmr::std::Hash'}
   75 |            class Hash = hash<Key>,
      |                  ^~~~
p925.cpp:170:24: error: 'key_equal' was not declared in this scope
  170 | const key_equal& eql = key_equal(),
      |                        ^~~~~~~~~
p925.cpp:171:27: error: 'allocator_type' was not declared in this scope
  171 | const allocator_type& a = allocator_type());
      |                           ^~~~~~~~~~~~~~
p925.cpp:195:29: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  195 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |                             ^~~~~~~~~
      |                             alloca
p925.cpp:195:38: error: template argument 1 is invalid
  195 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |                                      ^
p925.cpp:195:41: error: '<expression error>::is_always_equal' has not been declared
  195 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |                                         ^~~~~~~~~~~~~~~
In file included from /usr/local/include/c++/12.1.0/bits/move.h:57,
                 from /usr/local/include/c++/12.1.0/bits/exception_ptr.h:43,
                 from /usr/local/include/c++/12.1.0/exception:168,
                 from /usr/local/include/c++/12.1.0/ios:39:
/usr/local/include/c++/12.1.0/type_traits: In instantiation of 'struct std::is_nothrow_move_assignable<pmr::std::Hash>':
/usr/local/include/c++/12.1.0/type_traits:3261:38:   required from 'constexpr const bool std::is_nothrow_move_assignable_v<pmr::std::Hash>'
p925.cpp:196:12:   required from here
/usr/local/include/c++/12.1.0/type_traits:1211:52: error: static assertion failed: template argument must be a complete class or an unbounded array
 1211 |       static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/type_traits:1211:52: note: 'std::__is_complete_or_unbounded<__type_identity<pmr::std::Hash> >((std::__type_identity<pmr::std::Hash>(), std::__type_identity<pmr::std::Hash>()))' evaluates to false
p925.cpp:197:41: error: 'Pred' was not declared in this scope
  197 |            is_nothrow_move_assignable_v<Pred>);
      |                                         ^~~~
p925.cpp:197:12: error: template argument 1 is invalid
  197 |            is_nothrow_move_assignable_v<Pred>);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:249:29: error: 'Allocator' was not declared in this scope; did you mean 'alloca'?
  249 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |                             ^~~~~~~~~
      |                             alloca
p925.cpp:249:38: error: template argument 1 is invalid
  249 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |                                      ^
p925.cpp:249:41: error: '<expression error>::is_always_equal' has not been declared
  249 |   noexcept(allocator_traits<Allocator>::is_always_equal::value &&
      |                                         ^~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/type_traits: In instantiation of 'struct std::is_move_constructible<pmr::std::Hash>':
/usr/local/include/c++/12.1.0/type_traits:167:12:   required from 'struct std::__and_<std::is_move_constructible<pmr::std::Hash>, std::is_move_assignable<pmr::std::Hash> >'
/usr/local/include/c++/12.1.0/type_traits:172:12:   required from 'struct std::__and_<std::__not_<std::__is_tuple_like<pmr::std::Hash> >, std::is_move_constructible<pmr::std::Hash>, std::is_move_assignable<pmr::std::Hash> >'
/usr/local/include/c++/12.1.0/type_traits:2244:11:   required by substitution of 'template<class ... _Cond> using _Require = std::__enable_if_t<std::__and_< <template-parameter-1-1> >::value> [with _Cond = {std::__not_<std::__is_tuple_like<pmr::std::Hash> >, std::is_move_constructible<pmr::std::Hash>, std::is_move_assignable<pmr::std::Hash>}]'
/usr/local/include/c++/12.1.0/bits/move.h:196:5:   required by substitution of 'template<class _Tp> constexpr std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) [with _Tp = pmr::std::Hash]'
/usr/local/include/c++/12.1.0/type_traits:2736:24:   required by substitution of 'template<class _Tp> static std::__bool_constant<noexcept (std::swap(declval<_Tp&>(), declval<_Tp&>()))> std::__swappable_details::__do_is_nothrow_swappable_impl::__test(int) [with _Tp = pmr::std::Hash]'
/usr/local/include/c++/12.1.0/type_traits:2756:35:   required from 'struct std::__is_nothrow_swappable_impl<pmr::std::Hash>'
/usr/local/include/c++/12.1.0/type_traits:2785:12:   required from 'struct std::is_nothrow_swappable<pmr::std::Hash>'
/usr/local/include/c++/12.1.0/type_traits:2801:34:   required from 'constexpr const bool std::is_nothrow_swappable_v<pmr::std::Hash>'
p925.cpp:250:12:   required from here
/usr/local/include/c++/12.1.0/type_traits:1035:52: error: static assertion failed: template argument must be a complete class or an unbounded array
 1035 |       static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/type_traits:1035:52: note: 'std::__is_complete_or_unbounded<__type_identity<pmr::std::Hash> >((std::__type_identity<pmr::std::Hash>(), std::__type_identity<pmr::std::Hash>()))' evaluates to false
/usr/local/include/c++/12.1.0/type_traits: In instantiation of 'struct std::is_nothrow_swappable<pmr::std::Hash>':
/usr/local/include/c++/12.1.0/type_traits:2801:34:   required from 'constexpr const bool std::is_nothrow_swappable_v<pmr::std::Hash>'
p925.cpp:250:12:   required from here
/usr/local/include/c++/12.1.0/type_traits:2788:52: error: static assertion failed: template argument must be a complete class or an unbounded array
 2788 |       static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/type_traits:2788:52: note: 'std::__is_complete_or_unbounded<__type_identity<pmr::std::Hash> >((std::__type_identity<pmr::std::Hash>(), std::__type_identity<pmr::std::Hash>()))' evaluates to false
p925.cpp:251:35: error: 'Pred' was not declared in this scope
  251 |            is_nothrow_swappable_v<Pred>);
      |                                   ^~~~
p925.cpp:251:12: error: template argument 1 is invalid
  251 |            is_nothrow_swappable_v<Pred>);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp: In constructor 'pmr::std::unordered_map::unordered_map(InputIterator, InputIterator, int, const int&)':
p925.cpp:178:40: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  178 |     : unordered_map(f, l, n, hasher(), key_equal(), a) { }
      |                                        ^~~~~~~~~
p925.cpp: In constructor 'pmr::std::unordered_map::unordered_map(InputIterator, InputIterator, int, const hasher&, const int&)':
p925.cpp:182:30: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  182 | : unordered_map(f, l, n, hf, key_equal(), a) { } template<container-compatible-range<value_type> R>
      |                              ^~~~~~~~~
p925.cpp: In constructor 'pmr::std::unordered_map::unordered_map(int, int, const int&)':
p925.cpp:189:33: error: invalid use of incomplete type 'using hasher = class pmr::std::Hash' {aka 'class pmr::std::Hash'}
  189 |   : unordered_map(il, n, hasher(), key_equal(), a) { }
      |                                 ^
p925.cpp:75:18: note: forward declaration of 'using hasher = class pmr::std::Hash' {aka 'class pmr::std::Hash'}
   75 |            class Hash = hash<Key>,
      |                  ^~~~
p925.cpp:189:36: error: 'key_equal' was not declared in this scope
  189 |   : unordered_map(il, n, hasher(), key_equal(), a) { }
      |                                    ^~~~~~~~~
p925.cpp: In constructor 'pmr::std::unordered_map::unordered_map(int, int, const hasher&, const int&)':
p925.cpp:192:30: error: 'key_equal' was not declared in this scope
  192 |   : unordered_map(il, n, hf, key_equal(), a) { }
      |                              ^~~~~~~~~
p925.cpp: At global scope:
p925.cpp:306:19: error: 'iter_key_type' was not declared in this scope
  306 | class Hash = hash<iter_key_type<InputIterator>>,
      |                   ^~~~~~~~~~~~~
p925.cpp:306:46: error: template argument 1 is invalid
  306 | class Hash = hash<iter_key_type<InputIterator>>,
      |                                              ^~
p925.cpp:307:23: error: 'iter_key_type' was not declared in this scope
  307 | class Pred = equal_to<iter_key_type<InputIterator>>,
      |                       ^~~~~~~~~~~~~
p925.cpp:307:50: error: template argument 1 is invalid
  307 | class Pred = equal_to<iter_key_type<InputIterator>>,
      |                                                  ^~
p925.cpp:308:29: error: 'iter_to_alloc_type' was not declared in this scope
  308 | class Allocator = allocator<iter_to_alloc_type<InputIterator>>>
      |                             ^~~~~~~~~~~~~~~~~~
p925.cpp:308:61: error: template argument 1 is invalid
  308 | class Allocator = allocator<iter_to_alloc_type<InputIterator>>>
      |                                                             ^~
p925.cpp:309:54: error: 'see_below' has not been declared
  309 | unordered_map(InputIterator, InputIterator, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                      ^~~~~~~~~
p925.cpp:309:77: error: 'see_below' was not declared in this scope
  309 | unordered_map(InputIterator, InputIterator, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                                             ^~~~~~~~~
p925.cpp:310:4: error: 'pmr::std::unordered_map' is not a template
  310 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash, Pred, Allocator>;
      |    ^~~~~~~~~~~~~
p925.cpp:310:18: error: 'iter_key_type' was not declared in this scope
  310 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash, Pred, Allocator>;
      |                  ^~~~~~~~~~~~~
p925.cpp:310:45: error: expected primary-expression before '>' token
  310 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash, Pred, Allocator>;
      |                                             ^
p925.cpp:310:46: error: expected constructor, destructor, or type conversion before ',' token
  310 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash, Pred, Allocator>;
      |                                              ^
p925.cpp:311:51: error: 'range_key_type' was not declared in this scope
  311 | template<ranges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
      |                                                   ^~~~~~~~~~~~~~
p925.cpp:311:67: error: template argument 1 is invalid
  311 | template<ranges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
      |                                                                   ^~
p925.cpp:311:93: error: 'range' was not declared in this scope; did you mean 'std::ranges::range'?
  311 | late<ranges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
      |                                                                                         ^~~~~
      |                                                                                         std::ranges::range
In file included from /usr/local/include/c++/12.1.0/string_view:50,
                 from /usr/local/include/c++/12.1.0/bits/basic_string.h:48,
                 from /usr/local/include/c++/12.1.0/string:53:
/usr/local/include/c++/12.1.0/bits/ranges_base.h:583:13: note: 'std::ranges::range' declared here
  583 |     concept range = requires(_Tp& __t)
      |             ^~~~~
p925.cpp:311:99: error: 'key' was not declared in this scope; did you mean 'key_t'?
  311 | anges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
      |                                                                                         ^~~
      |                                                                                         key_t
p925.cpp:311:103: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  311 | ges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
      |                                                                                           ^~~~
      |                                                                                           std::__cmp_cat::type
In file included from /usr/local/include/c++/12.1.0/bits/char_traits.h:45:
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:311:109: error: template argument 1 is invalid
  311 | ges::input_range R, class Hash = hash<range_key_type<R>>, class Pred = equal_to<range-key-type<R>>,
      |                                                                                                 ^~

p925.cpp:312:29: error: 'range_to_alloc_type' was not declared in this scope
  312 | class Allocator = allocator<range_to_alloc_type<R>>>
      |                             ^~~~~~~~~~~~~~~~~~~
p925.cpp:312:50: error: template argument 1 is invalid
  312 | class Allocator = allocator<range_to_alloc_type<R>>>
      |                                                  ^~
p925.cpp:313:27: error: expected ')' before ',' token
  313 | unordered_map(from_range_t, R&&, typename see below::size_type = see below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |              ~            ^
      |                           )
p925.cpp:315:56: error: 'key_type' does not name a type; did you mean 'key_t'?
  315 |                                      equal_range(const key_type& k);
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:315:68: error: expected constructor, destructor, or type conversion before ';' token
  315 |                                      equal_range(const key_type& k);
      |                                                                    ^
p925.cpp:316:56: error: 'key_type' does not name a type; did you mean 'key_t'?
  316 |                                      equal_range(const key_type& k) const;
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:316:74: error: expected constructor, destructor, or type conversion before ';' token
  316 |                                      equal_range(const key_type& k) const;
      |                                                                          ^
p925.cpp:317:56: error: 'K' does not name a type
  317 |                                      equal_range(const K& k);
      |                                                        ^
p925.cpp:317:61: error: expected constructor, destructor, or type conversion before ';' token
  317 |                                      equal_range(const K& k);
      |                                                             ^
p925.cpp:318:6: error: 'const_iterator' was not declared in this scope
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |      ^~~~~~~~~~~~~~
p925.cpp:318:22: error: 'const_iterator' was not declared in this scope
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                      ^~~~~~~~~~~~~~
p925.cpp:318:36: error: template argument 1 is invalid
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                    ^
p925.cpp:318:36: error: template argument 2 is invalid
p925.cpp:318:56: error: 'K' does not name a type
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                        ^
p925.cpp:318:62: error: non-member function 'int pmr::std::equal_range(const int&)' cannot have cv-qualifier
  318 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                              ^~~~~
p925.cpp:319:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  319 |   pair<iterator, iterator>
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:319:18: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  319 |   pair<iterator, iterator>
      |                  ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:319:26: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  319 |   pair<iterator, iterator>
      |                          ^
p925.cpp:319:26: note:   expected a type, got 'iterator'
p925.cpp:319:26: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:319:26: note:   expected a type, got 'iterator'
p925.cpp:320:1: error: expected unqualified-id before 'template'
  320 | template<class K>
      | ^~~~~~~~
p925.cpp:327:54: error: 'see_below' has not been declared
  327 | unordered_map(InputIterator, InputIterator, typename see_below::size_type, Allocator)
      |                                                      ^~~~~~~~~
p925.cpp:328:4: error: 'pmr::std::unordered_map' is not a template
  328 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |    ^~~~~~~~~~~~~
p925.cpp:328:18: error: 'iter_key_type' was not declared in this scope
  328 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                  ^~~~~~~~~~~~~
p925.cpp:328:45: error: expected primary-expression before '>' token
  328 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                             ^
p925.cpp:328:46: error: expected constructor, destructor, or type conversion before ',' token
  328 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                              ^
p925.cpp:332:4: error: 'pmr::std::unordered_map' is not a template
  332 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |    ^~~~~~~~~~~~~
p925.cpp:332:18: error: 'iter_key_type' was not declared in this scope
  332 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                  ^~~~~~~~~~~~~
p925.cpp:332:45: error: expected primary-expression before '>' token
  332 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                             ^
p925.cpp:332:46: error: expected constructor, destructor, or type conversion before ',' token
  332 | -> unordered_map<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                              ^
p925.cpp:335:54: error: 'see_below' has not been declared
  335 | unordered_map(InputIterator, InputIterator, typename see_below::size_type, Hash, Allocator)
      |                                                      ^~~~~~~~~
p925.cpp:336:4: error: 'pmr::std::unordered_map' is not a template
  336 | -> unordered_map<iter-key-type<InputIterator>, iter_mapped_type<InputIterator>, Hash, equal_to<iter_key_type<InputIterator>>, Allocator>;
      |    ^~~~~~~~~~~~~
p925.cpp:336:18: error: 'iter' was not declared in this scope
  336 | -> unordered_map<iter-key-type<InputIterator>, iter_mapped_type<InputIterator>, Hash, equal_to<iter_key_type<InputIterator>>, Allocator>;
      |                  ^~~~
p925.cpp:336:23: error: 'key' was not declared in this scope; did you mean 'key_t'?
  336 | -> unordered_map<iter-key-type<InputIterator>, iter_mapped_type<InputIterator>, Hash, equal_to<iter_key_type<InputIterator>>, Allocator>;
      |                       ^~~
      |                       key_t
p925.cpp:336:27: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  336 | -> unordered_map<iter-key-type<InputIterator>, iter_mapped_type<InputIterator>, Hash, equal_to<iter_key_type<InputIterator>>, Allocator>;
      |                           ^~~~
      |                           std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:336:45: error: expected primary-expression before '>' token
  336 | -> unordered_map<iter-key-type<InputIterator>, iter_mapped_type<InputIterator>, Hash, equal_to<iter_key_type<InputIterator>>, Allocator>;
      |                                             ^
p925.cpp:336:46: error: expected constructor, destructor, or type conversion before ',' token
  336 | -> unordered_map<iter-key-type<InputIterator>, iter_mapped_type<InputIterator>, Hash, equal_to<iter_key_type<InputIterator>>, Allocator>;
      |                                              ^
p925.cpp:337:10: error: 'std::ranges::tcode' has not been declared
  337 | template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
      |          ^~~~~~
p925.cpp:337:24: error: expected '>' before '{' token
  337 | template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
      |                        ^
p925.cpp:337:24: error: expected unqualified-id before '{' token
p925.cpp:337:38: error: 'R' does not name a type
  337 | template<ranges::\tcode{input_range} R, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Allocator)
      |                                      ^
p925.cpp:340:36: error: expected ')' before ',' token
  340 |          unordered_map(from_range_t, R&&, Allocator)
      |                       ~            ^
      |                                    )
p925.cpp:342:88: error: expected ')' before ',' token
  342 | template<ranges::input_range R, class Hash, class Allocator> unordered_map(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                                                                           ~            ^
      |                                                                                        )
p925.cpp:344:102: error: expected nested-name-specifier before 'see'
  344 | s Key, class T, class Allocator> unordered_map(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                                                         ^~~

p925.cpp:344:106: error: expected ',' or '...' before 'below'
  344 | y, class T, class Allocator> unordered_map(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                                                         ^~~~~

p925.cpp:346:15: error: 'pmr::std::unordered_map' is not a template
  346 |            -> unordered_map<Key, T, hash<Key>, equal_to<Key>, Allocator>;
      |               ^~~~~~~~~~~~~
p925.cpp:346:73: error: expected constructor, destructor, or type conversion before ';' token
  346 |            -> unordered_map<Key, T, hash<Key>, equal_to<Key>, Allocator>;
      |                                                                         ^
p925.cpp:349:15: error: 'pmr::std::unordered_map' is not a template
  349 |            -> unordered_map<Key, T, hash<Key>, equal_to<Key>, Allocator>;
      |               ^~~~~~~~~~~~~
p925.cpp:349:73: error: expected constructor, destructor, or type conversion before ';' token
  349 |            -> unordered_map<Key, T, hash<Key>, equal_to<Key>, Allocator>;
      |                                                                         ^
p925.cpp:350:114: error: 'see_below' has not been declared
  350 |  T, class Hash, class Allocator> unordered_map(initializer_list<pair<Key, T>>, typename see_below::size_type, Hash, Allocator)
      |                                                                                         ^~~~~~~~~

p925.cpp:351:15: error: 'pmr::std::unordered_map' is not a template
  351 |            -> unordered_map<Key, T, Hash, equal_to<Key>, Allocator>;
      |               ^~~~~~~~~~~~~
p925.cpp:351:68: error: expected constructor, destructor, or type conversion before ';' token
  351 |            -> unordered_map<Key, T, Hash, equal_to<Key>, Allocator>;
      |                                                                    ^
p925.cpp:355:1: error: deduction guide for 'std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>' must have trailing return type
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      | ^~~~~~~~~~~~~
In file included from /usr/local/include/c++/12.1.0/unordered_map:47,
                 from N4910.h:12:
/usr/local/include/c++/12.1.0/bits/unordered_map.h:102:11: note: 'template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc> class std::unordered_map' declared here
  102 |     class unordered_map
      |           ^~~~~~~~~~~~~
p925.cpp:355:91: error: expected ')' before 'n'
  355 | unordered_map() : unordered_map(size_type(see below)) { } explicit unordered_map(size_type n,
      |                                                                                 ~         ^~
      |                                                                                           )
p925.cpp:361:16: error: 'hasher' does not name a type
  361 |          const hasher& hf = hasher(),
      |                ^~~~~~
p925.cpp:368:1: error: 'size_type' has not been declared
  368 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:368:15: error: 'see_below' was not declared in this scope
  368 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:369:7: error: 'hasher' does not name a type
  369 | const hasher& hf = hasher(),
      |       ^~~~~~
p925.cpp:369:20: error: there are no arguments to 'hasher' that depend on a template parameter, so a declaration of 'hasher' must be available [-fpermissive]
  369 | const hasher& hf = hasher(),
      |                    ^~~~~~
p925.cpp:370:7: error: 'key_equal' does not name a type
  370 | const key_equal& eql = key_equal(),
      |       ^~~~~~~~~
p925.cpp:370:24: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  370 | const key_equal& eql = key_equal(),
      |                        ^~~~~~~~~
p925.cpp:371:7: error: 'allocator_type' does not name a type
  371 | const allocator_type& a = allocator_type());
      |       ^~~~~~~~~~~~~~
p925.cpp:371:27: error: there are no arguments to 'allocator_type' that depend on a template parameter, so a declaration of 'allocator_type' must be available [-fpermissive]
  371 | const allocator_type& a = allocator_type());
      |                           ^~~~~~~~~~~~~~
p925.cpp:367:3: error: deduction guide for 'std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>' must have trailing return type
  367 |   unordered_map(InputIterator f, InputIterator l,
      |   ^~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/bits/unordered_map.h:102:11: note: 'template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc> class std::unordered_map' declared here
  102 |     class unordered_map
      |           ^~~~~~~~~~~~~
p925.cpp:372:10: error: 'container' has not been declared
  372 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg,
      |          ^~~~~~~~~
p925.cpp:372:19: error: expected '>' before '-' token
  372 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg,
      |                   ^
p925.cpp:372:78: error: expected ')' before ',' token
  372 | template<container-compatible-range<value_type> R> unordered_map(from_range_t, R&& rg,
      |                                                                 ~            ^
      |                                                                              )
p925.cpp:377:32: error: 'value_type' was not declared in this scope
  377 | unordered_map(initializer_list<value_type> il, size_type n = see below,
      |                                ^~~~~~~~~~
p925.cpp:377:42: error: template argument 1 is invalid
  377 | unordered_map(initializer_list<value_type> il, size_type n = see below,
      |                                          ^
p925.cpp:377:48: error: 'size_type' has not been declared
  377 | unordered_map(initializer_list<value_type> il, size_type n = see below,
      |                                                ^~~~~~~~~
p925.cpp:377:62: error: 'see' was not declared in this scope
  377 | unordered_map(initializer_list<value_type> il, size_type n = see below,
      |                                                              ^~~
p925.cpp:377:66: error: expected ',' or '...' before 'below'
  377 | unordered_map(initializer_list<value_type> il, size_type n = see below,
      |                                                                  ^~~~~
p925.cpp:379:43: error: expected ')' before ';' token
  379 | mapped_type& operator[](const key_type& k);
      |                                           ^
      |                                           )
p925.cpp:377:14: note: to match this '('
  377 | unordered_map(initializer_list<value_type> il, size_type n = see below,
      |              ^
p925.cpp:377:1: error: deduction guide for 'std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>' must have trailing return type
  377 | unordered_map(initializer_list<value_type> il, size_type n = see below,
      | ^~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/bits/unordered_map.h:102:11: note: 'template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc> class std::unordered_map' declared here
  102 |     class unordered_map
      |           ^~~~~~~~~~~~~
p925.cpp:382:7: error: 'mapped_type' does not name a type
  382 | const mapped_type& at(const key_type& k) const;
      |       ^~~~~~~~~~~
p925.cpp:386:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  386 |   pair<iterator, bool> insert(P&& obj);
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:386:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  386 |   pair<iterator, bool> insert(P&& obj);
      |                      ^
p925.cpp:386:22: note:   expected a type, got 'iterator'
p925.cpp:389:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  389 |   iterator insert(const_iterator hint, P&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:389:19: error: 'template<class P> iterator<...auto...> pmr::insert' conflicts with a previous declaration
  389 |   iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~~~~~~~
p925.cpp:386:24: note: previous declaration 'int pmr::insert(P&&)'
  386 |   pair<iterator, bool> insert(P&& obj);
      |                        ^~~~~~
p925.cpp:389:19: error: 'const_iterator' was not declared in this scope
  389 |   iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~~~~~~~
p925.cpp:389:41: error: expected primary-expression before '&&' token
  389 |   iterator insert(const_iterator hint, P&& obj);
      |                                         ^~
p925.cpp:389:44: error: 'obj' was not declared in this scope
  389 |   iterator insert(const_iterator hint, P&& obj);
      |                                            ^~~
p925.cpp:393:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:393:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                      ^
p925.cpp:393:22: note:   expected a type, got 'iterator'
p925.cpp:393:42: error: 'key_type' does not name a type; did you mean 'key_t'?
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                                          ^~~~~~~~
      |                                          key_t
p925.cpp:395:6: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  395 |      iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |      ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:395:27: error: 'template<class ... Args> iterator<...auto...> pmr::try_emplace' conflicts with a previous declaration
  395 |      iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |                           ^~~~~~~~~~~~~~
p925.cpp:393:24: note: previous declaration 'int pmr::try_emplace(const int&, Args&& ...)'
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                        ^~~~~~~~~~~
p925.cpp:395:27: error: 'const_iterator' was not declared in this scope
  395 |      iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |                           ^~~~~~~~~~~~~~
p925.cpp:395:48: error: expected primary-expression before 'const'
  395 |      iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |                                                ^~~~~
p925.cpp:395:71: error: expected primary-expression before '&&' token
  395 |      iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
      |                                                                       ^~
p925.cpp:401:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:401:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                      ^
p925.cpp:401:22: note:   expected a type, got 'iterator'
p925.cpp:401:36: error: 'template<class ... Args> int pmr::try_emplace' conflicts with a previous declaration
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                    ^~~~~~~~
p925.cpp:393:24: note: previous declaration 'int pmr::try_emplace(const int&, Args&& ...)'
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                        ^~~~~~~~~~~
p925.cpp:401:36: error: 'key_type' was not declared in this scope; did you mean 'key_t'?
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                    ^~~~~~~~
      |                                    key_t
p925.cpp:401:47: error: 'k' was not declared in this scope
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                               ^
p925.cpp:401:54: error: expected primary-expression before '&&' token
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                                      ^~
p925.cpp:401:64: error: expression list treated as compound expression in initializer [-fpermissive]
  401 |   pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
      |                                                                ^
p925.cpp:403:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  403 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:403:24: error: 'template<class ... Args> iterator<...auto...> pmr::try_emplace' conflicts with a previous declaration
  403 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |                        ^~~~~~~~~~~~~~
p925.cpp:393:24: note: previous declaration 'int pmr::try_emplace(const int&, Args&& ...)'
  393 |   pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
      |                        ^~~~~~~~~~~
p925.cpp:403:24: error: 'const_iterator' was not declared in this scope
  403 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |                        ^~~~~~~~~~~~~~
p925.cpp:403:45: error: 'key_type' was not declared in this scope; did you mean 'key_t'?
  403 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |                                             ^~~~~~~~
      |                                             key_t
p925.cpp:403:56: error: 'k' was not declared in this scope
  403 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |                                                        ^
p925.cpp:403:63: error: expected primary-expression before '&&' token
  403 |   iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
      |                                                               ^~
p925.cpp:409:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  409 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:409:22: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  409 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                      ^
p925.cpp:409:22: note:   expected a type, got 'iterator'
p925.cpp:409:47: error: 'key_type' does not name a type; did you mean 'key_t'?
  409 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                                               ^~~~~~~~
      |                                               key_t
p925.cpp:411:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  411 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:411:29: error: 'template<class M> iterator<...auto...> pmr::insert_or_assign' conflicts with a previous declaration
  411 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |                             ^~~~~~~~~~~~~~
p925.cpp:409:24: note: previous declaration 'int pmr::insert_or_assign(const int&, M&&)'
  409 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                        ^~~~~~~~~~~~~~~~
p925.cpp:411:29: error: 'const_iterator' was not declared in this scope
  411 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |                             ^~~~~~~~~~~~~~
p925.cpp:411:50: error: expected primary-expression before 'const'
  411 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |                                                  ^~~~~
p925.cpp:411:70: error: expected primary-expression before '&&' token
  411 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |                                                                      ^~
p925.cpp:411:73: error: 'obj' was not declared in this scope
  411 |   iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
      |                                                                         ^~~
p925.cpp:414:6: error: 'M' was not declared in this scope
  414 | ward<M>(obj).
      |      ^
p925.cpp:414:1: error: specializing member '::ward<<expression error> >' requires 'template<>' syntax
  414 | ward<M>(obj).
      | ^~~~~~~
p925.cpp:421:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  421 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:421:29: error: 'template<class M> iterator<...auto...> pmr::insert_or_assign' conflicts with a previous declaration
  421 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |                             ^~~~~~~~~~~~~~
p925.cpp:409:24: note: previous declaration 'int pmr::insert_or_assign(const int&, M&&)'
  409 |   pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
      |                        ^~~~~~~~~~~~~~~~
p925.cpp:421:29: error: 'const_iterator' was not declared in this scope
  421 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |                             ^~~~~~~~~~~~~~
p925.cpp:421:50: error: 'key_type' was not declared in this scope; did you mean 'key_t'?
  421 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |                                                  ^~~~~~~~
      |                                                  key_t
p925.cpp:421:61: error: 'k' was not declared in this scope
  421 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |                                                             ^
p925.cpp:421:65: error: expected primary-expression before '&&' token
  421 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |                                                                 ^~
p925.cpp:421:68: error: 'obj' was not declared in this scope
  421 |   iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
      |                                                                    ^~~
p925.cpp:424:6: error: 'forward' in namespace 'pmr::std' does not name a template type
  424 | std::forward<M>(obj).
      |      ^~~~~~~
p925.cpp:433:29: error: 'c' was not declared in this scope
  433 |        auto original_size = c.size();
      |                             ^
p925.cpp:434:8: error: expected unqualified-id before 'for'
  434 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |        ^~~
p925.cpp:434:49: error: 'i' does not name a type
  434 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                 ^
p925.cpp:434:60: error: expected unqualified-id before ')' token
  434 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                            ^
p925.cpp:439:8: error: expected unqualified-id before 'return'
  439 |        return original_size - c.size();
      |        ^~~~~~
p925.cpp:464:21: error: 'implementation_defined' does not name a type
  464 |   using size_type = implementation_defined ; // see 24.2
      |                     ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:465:27: error: 'implementation_defined' does not name a type
  465 |   using difference_type = implementation_defined ; // see 24.2
      |                           ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:466:20: error: 'implementation_defined' does not name a type
  466 |   using iterator = implementation_defined ; // see 24.2
      |                    ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:467:26: error: 'implementation_defined' does not name a type
  467 |   using const_iterator = implementation_defined ; // see 24.2
      |                          ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:468:26: error: 'implementation_defined' does not name a type
  468 |   using local_iterator = implementation_defined ; // see 24.2
      |                          ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:469:32: error: 'implementation_defined' does not name a type
  469 |   using const_local_iterator = implementation_defined ; // see 24.2
      |                                ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:470:22: error: 'unspecified' does not name a type
  470 |   using node_type  = unspecified;
      |                      ^~~~~~~~~~~
p925.cpp:472:40: error: expected ')' before 'n'
  472 |   explicit unordered_multimap(size_type n,
      |                              ~         ^~
      |                                        )
p925.cpp:477:54: error: 'size_type' has not been declared
  477 | unordered_multimap(InputIterator f, InputIterator l, size_type n = see_below,
      |                                                      ^~~~~~~~~
p925.cpp:481:10: error: 'container' has not been declared
  481 | template<container-compatible-range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |          ^~~~~~~~~
p925.cpp:481:19: error: expected '>' before '-' token
  481 | template<container-compatible-range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |                   ^
p925.cpp:481:83: error: expected ')' before ',' token
  481 | template<container-compatible-range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |                                                                      ~            ^
      |                                                                                   )
p925.cpp:492:1: error: 'size_type' has not been declared
  492 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:496:31: error: expected ')' before 'n'
  496 |   unordered_multimap(size_type n, const allocator_type& a)
      |                     ~         ^~
      |                               )
p925.cpp:498:31: error: expected ')' before 'n'
  498 |   unordered_multimap(size_type n, const hasher& hf, const allocator_type& a)
      |                     ~         ^~
      |                               )
p925.cpp:501:58: error: 'size_type' has not been declared
  501 |     unordered_multimap(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
      |                                                          ^~~~~~~~~
p925.cpp:504:58: error: 'size_type' has not been declared
  504 |     unordered_multimap(InputIterator f, InputIterator l, size_type n, const hasher& hf,
      |                                                          ^~~~~~~~~
p925.cpp:506:64: error: 'container_compatible_range' has not been declared
  506 | : unordered_multimap(f, l, n, hf, key_equal(), a) { } template<container_compatible_range<value_type> R>
      |                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:506:90: error: expected '>' before '<' token
  506 |  unordered_multimap(f, l, n, hf, key_equal(), a) { } template<container_compatible_range<value_type> R>
      |                                                                                         ^

p925.cpp:507:34: error: expected ')' before ',' token
  507 |   unordered_multimap(from_range_t, R&& rg, size_type n, const allocator_type& a)
      |                     ~            ^
      |                                  )
p925.cpp:509:43: error: 'container_compatible_range' has not been declared
  509 | n, hasher(), key_equal(), a) { } template<container_compatible_range<value_type> R>
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:509:69: error: expected '>' before '<' token
  509 | n, hasher(), key_equal(), a) { } template<container_compatible_range<value_type> R>
      |                                                                     ^
p925.cpp:510:34: error: expected ')' before ',' token
  510 |   unordered_multimap(from_range_t, R&& rg, size_type n, const hasher& hf,
      |                     ~            ^
      |                                  )
p925.cpp:513:55: error: 'size_type' has not been declared
  513 |   unordered_multimap(initializer_list<value_type> il, size_type n, const allocator_type& a)
      |                                                       ^~~~~~~~~
p925.cpp:515:55: error: 'size_type' has not been declared
  515 |   unordered_multimap(initializer_list<value_type> il, size_type n, const hasher& hf,
      |                                                       ^~~~~~~~~
p925.cpp:526:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  526 |   iterator       begin() noexcept;
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:526:3: error: deduced class type 'iterator' in function return type
  526 |   iterator       begin() noexcept;
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:527:3: error: 'const_iterator' does not name a type
  527 |   const_iterator begin() const noexcept;
      |   ^~~~~~~~~~~~~~
p925.cpp:528:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  528 |   iterator       end() noexcept;
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:528:3: error: deduced class type 'iterator' in function return type
  528 |   iterator       end() noexcept;
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:529:3: error: 'const_iterator' does not name a type
  529 |   const_iterator end() const noexcept;
      |   ^~~~~~~~~~~~~~
p925.cpp:530:1: error: 'const_iterator' does not name a type
  530 | const_iterator cbegin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:531:1: error: 'const_iterator' does not name a type
  531 | const_iterator cend() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:534:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  534 | size_type size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:535:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  535 | size_type max_size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:537:25: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  537 | template<class... Args> iterator emplace(Args&&... args);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:537:25: error: deduced class type 'iterator' in function return type
  537 | template<class... Args> iterator emplace(Args&&... args);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:538:25: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  538 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:538:47: error: 'const_iterator' has not been declared
  538 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                                               ^~~~~~~~~~~~~~
p925.cpp:538:25: error: deduced class type 'iterator' in function return type
  538 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:538:89: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  538 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                                                                                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:538:89: error: deduced class type 'iterator' in function return type
  538 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                                                                                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:539:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  539 | iterator insert(value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:539:1: error: deduced class type 'iterator' in function return type
  539 | iterator insert(value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:540:19: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  540 | template<class P> iterator insert(P&& obj);
      |                   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:540:19: error: deduced class type 'iterator' in function return type
  540 | template<class P> iterator insert(P&& obj);
      |                   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:541:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  541 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:541:17: error: 'const_iterator' has not been declared
  541 | iterator insert(const_iterator hint, const value_type& obj);
      |                 ^~~~~~~~~~~~~~
p925.cpp:541:1: error: deduced class type 'iterator' in function return type
  541 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:542:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  542 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:542:17: error: 'const_iterator' has not been declared
  542 | iterator insert(const_iterator hint, value_type&& obj);
      |                 ^~~~~~~~~~~~~~
p925.cpp:542:1: error: deduced class type 'iterator' in function return type
  542 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:543:19: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  543 | template<class P> iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:543:35: error: 'const_iterator' has not been declared
  543 | template<class P> iterator insert(const_iterator hint, P&& obj);
      |                                   ^~~~~~~~~~~~~~
p925.cpp:543:19: error: deduced class type 'iterator' in function return type
  543 | template<class P> iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:544:94: error: 'container' has not been declared
  544 | ate<class InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^~~~~~~~~

p925.cpp:544:103: error: expected '>' before '-' token
  544 |  InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^

p925.cpp:545:21: error: 'R' has not been declared
  545 |   void insert_range(R&& rg);
      |                     ^
p925.cpp:547:1: error: 'node_type' does not name a type
  547 | node_type extract(const_iterator position);
      | ^~~~~~~~~
p925.cpp:548:1: error: 'node_type' does not name a type
  548 | node_type extract(const key_type& x);
      | ^~~~~~~~~
p925.cpp:549:19: error: 'node_type' does not name a type
  549 | template<class K> node_type extract(K&& x);
      |                   ^~~~~~~~~
p925.cpp:550:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  550 | iterator insert(node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:550:17: error: 'node_type' has not been declared
  550 | iterator insert(node_type&& nh);
      |                 ^~~~~~~~~
p925.cpp:550:1: error: deduced class type 'iterator' in function return type
  550 | iterator insert(node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:551:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  551 | iterator insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:551:17: error: 'const_iterator' has not been declared
  551 | iterator insert(const_iterator hint, node_type&& nh);
      |                 ^~~~~~~~~~~~~~
p925.cpp:551:38: error: 'node_type' has not been declared
  551 | iterator insert(const_iterator hint, node_type&& nh);
      |                                      ^~~~~~~~~
p925.cpp:551:1: error: deduced class type 'iterator' in function return type
  551 | iterator insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:552:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  552 | iterator  erase(iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:552:17: error: class template placeholder 'std::iterator' not permitted in this context
  552 | iterator  erase(iterator position);
      |                 ^~~~~~~~
p925.cpp:552:17: note: use 'auto' for an abbreviated function template
p925.cpp:552:1: error: deduced class type 'iterator' in function return type
  552 | iterator  erase(iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:553:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  553 | iterator  erase(const_iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:553:17: error: 'const_iterator' has not been declared
  553 | iterator  erase(const_iterator position);
      |                 ^~~~~~~~~~~~~~
p925.cpp:553:1: error: deduced class type 'iterator' in function return type
  553 | iterator  erase(const_iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:554:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  554 | size_type erase(const key_type& k);
      | ^~~~~~~~~
      | size_t
p925.cpp:555:19: error: 'size_type' does not name a type; did you mean 'size_t'?
  555 | template<class K> size_type erase(K&& x);
      |                   ^~~~~~~~~
      |                   size_t
p925.cpp:556:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  556 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:556:17: error: 'const_iterator' has not been declared
  556 | iterator  erase(const_iterator first, const_iterator last);
      |                 ^~~~~~~~~~~~~~
p925.cpp:556:39: error: 'const_iterator' has not been declared
  556 | iterator  erase(const_iterator first, const_iterator last);
      |                                       ^~~~~~~~~~~~~~
p925.cpp:556:1: error: deduced class type 'iterator' in function return type
  556 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:567:14: error: 'pmr::std::unordered_map' is not a template
  567 |   void merge(unordered_map<Key, T, H2, P2, Allocator>& source);
      |              ^~~~~~~~~~~~~
p925.cpp:569:14: error: 'pmr::std::unordered_map' is not a template
  569 |   void merge(unordered_map<Key, T, H2, P2, Allocator>&& source);
      |              ^~~~~~~~~~~~~
p925.cpp:574:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  574 | iterator
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:574:1: error: invalid use of template-name 'std::iterator' without an argument list
  574 | iterator
      | ^~~~~~~~
p925.cpp:575:1: error: expected ';' at end of member declaration
  575 | const_iterator
      | ^~~~~~~~~~~~~~
      |               ;
p925.cpp:577:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  577 |   iterator
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:578:1: error: expected unqualified-id before 'template'
  578 | template<class K>
      | ^~~~~~~~
p925.cpp:580:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
  580 | find(const key_type& k) const;
      | ^~~~
p925.cpp:581:27: error: 'K' does not name a type
  581 |                find(const K& k);
      |                           ^
p925.cpp:581:16: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
  581 |                find(const K& k);
      |                ^~~~
p925.cpp:582:1: error: 'const_iterator' does not name a type
  582 | const_iterator find(const K& k) const;
      | ^~~~~~~~~~~~~~
p925.cpp:583:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  583 | size_type
      | ^~~~~~~~~
      | size_t
p925.cpp:588:13: error: 'K' does not name a type
  588 | count(const K& k) const;
      |             ^
p925.cpp:588:1: error: ISO C++ forbids declaration of 'count' with no type [-fpermissive]
  588 | count(const K& k) const;
      | ^~~~~
p925.cpp:589:1: error: ISO C++ forbids declaration of 'contains' with no type [-fpermissive]
  589 | contains(const key_type& k) const;
      | ^~~~~~~~
p925.cpp:592:6: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  592 | pair<iterator, iterator>
      |      ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:592:16: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  592 | pair<iterator, iterator>
      |                ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:592:24: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  592 | pair<iterator, iterator>
      |                        ^
p925.cpp:592:24: note:   expected a type, got 'iterator'
p925.cpp:592:24: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:592:24: note:   expected a type, got 'iterator'
p925.cpp:593:6: error: invalid use of non-static data member 'pmr::std::unordered_multimap<Key, T, Hash, Pred, Allocator>::const_iterator'
  593 | pair<const_iterator, const_iterator>
      |      ^~~~~~~~~~~~~~
p925.cpp:575:1: note: declared here
  575 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:593:22: error: invalid use of non-static data member 'pmr::std::unordered_multimap<Key, T, Hash, Pred, Allocator>::const_iterator'
  593 | pair<const_iterator, const_iterator>
      |                      ^~~~~~~~~~~~~~
p925.cpp:575:1: note: declared here
  575 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:593:36: error: template argument 1 is invalid
  593 | pair<const_iterator, const_iterator>
      |                                    ^
p925.cpp:593:36: error: template argument 2 is invalid
p925.cpp:597:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  597 | size_type max_bucket_count() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:598:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  598 | size_type bucket_size(size_type n) const;
      | ^~~~~~~~~
      | size_t
p925.cpp:599:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  599 | size_type bucket(const key_type& k) const;
      | ^~~~~~~~~
      | size_t
p925.cpp:600:1: error: 'local_iterator' does not name a type
  600 | local_iterator begin(size_type n);
      | ^~~~~~~~~~~~~~
p925.cpp:601:1: error: 'const_local_iterator' does not name a type
  601 | const_local_iterator begin(size_type n) const;
      | ^~~~~~~~~~~~~~~~~~~~
p925.cpp:602:1: error: 'local_iterator' does not name a type
  602 | local_iterator end(size_type n);
      | ^~~~~~~~~~~~~~
p925.cpp:603:1: error: 'const_local_iterator' does not name a type
  603 | const_local_iterator end(size_type n) const;
      | ^~~~~~~~~~~~~~~~~~~~
p925.cpp:604:1: error: 'const_local_iterator' does not name a type
  604 | const_local_iterator cbegin(size_type n) const;
      | ^~~~~~~~~~~~~~~~~~~~
p925.cpp:605:1: error: 'const_local_iterator' does not name a type
  605 | const_local_iterator cend(size_type n) const;
      | ^~~~~~~~~~~~~~~~~~~~
p925.cpp:610:13: error: 'size_type' has not been declared
  610 | void rehash(size_type n);
      |             ^~~~~~~~~
p925.cpp:611:14: error: 'size_type' has not been declared
  611 | void reserve(size_type n);
      |              ^~~~~~~~~
p925.cpp:612:38: error: ISO C++ forbids declaration of 'equal_range' with no type [-fpermissive]
  612 |                                      equal_range(const key_type& k);
      |                                      ^~~~~~~~~~~
p925.cpp:613:38: error: ISO C++ forbids declaration of 'equal_range' with no type [-fpermissive]
  613 |                                      equal_range(const key_type& k) const;
      |                                      ^~~~~~~~~~~
p925.cpp:614:56: error: 'K' does not name a type
  614 |                                      equal_range(const K& k);
      |                                                        ^
p925.cpp:614:38: error: ISO C++ forbids declaration of 'equal_range' with no type [-fpermissive]
  614 |                                      equal_range(const K& k);
      |                                      ^~~~~~~~~~~
p925.cpp:615:6: error: invalid use of non-static data member 'pmr::std::unordered_multimap<Key, T, Hash, Pred, Allocator>::const_iterator'
  615 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |      ^~~~~~~~~~~~~~
p925.cpp:575:1: note: declared here
  575 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:615:22: error: invalid use of non-static data member 'pmr::std::unordered_multimap<Key, T, Hash, Pred, Allocator>::const_iterator'
  615 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                      ^~~~~~~~~~~~~~
p925.cpp:575:1: note: declared here
  575 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:615:36: error: template argument 1 is invalid
  615 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                    ^
p925.cpp:615:36: error: template argument 2 is invalid
p925.cpp:615:56: error: 'K' does not name a type
  615 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                        ^
p925.cpp:616:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  616 |   pair<iterator, iterator>
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:616:18: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  616 |   pair<iterator, iterator>
      |                  ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:616:26: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  616 |   pair<iterator, iterator>
      |                          ^
p925.cpp:616:26: note:   expected a type, got 'iterator'
p925.cpp:616:26: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:616:26: note:   expected a type, got 'iterator'
p925.cpp:617:1: error: expected unqualified-id before 'template'
  617 | template<class K>
      | ^~~~~~~~
p925.cpp:477:68: error: 'see_below' was not declared in this scope
  477 | unordered_multimap(InputIterator f, InputIterator l, size_type n = see_below,
      |                                                                    ^~~~~~~~~
p925.cpp:492:15: error: 'see_below' was not declared in this scope
  492 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:620:19: error: 'iter_key_type' was not declared in this scope
  620 | class Hash = hash<iter_key_type<InputIterator>>,
      |                   ^~~~~~~~~~~~~
p925.cpp:620:46: error: template argument 1 is invalid
  620 | class Hash = hash<iter_key_type<InputIterator>>,
      |                                              ^~
p925.cpp:621:23: error: 'iter' was not declared in this scope
  621 | class Pred = equal_to<iter-key-type<InputIterator>>,
      |                       ^~~~
p925.cpp:621:28: error: 'key' was not declared in this scope; did you mean 'key_t'?
  621 | class Pred = equal_to<iter-key-type<InputIterator>>,
      |                            ^~~
      |                            key_t
p925.cpp:621:32: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  621 | class Pred = equal_to<iter-key-type<InputIterator>>,
      |                                ^~~~
      |                                std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:621:50: error: template argument 1 is invalid
  621 | class Pred = equal_to<iter-key-type<InputIterator>>,
      |                                                  ^~
p925.cpp:622:29: error: 'iter_to_alloc_type' was not declared in this scope
  622 | class Allocator = allocator<iter_to_alloc_type<InputIterator>>>
      |                             ^~~~~~~~~~~~~~~~~~
p925.cpp:622:61: error: template argument 1 is invalid
  622 | class Allocator = allocator<iter_to_alloc_type<InputIterator>>>
      |                                                             ^~
p925.cpp:624:10: error: 'see_below' has not been declared
  624 | typename see_below::size_type = see_below,
      |          ^~~~~~~~~
p925.cpp:624:33: error: 'see_below' was not declared in this scope
  624 | typename see_below::size_type = see_below,
      |                                 ^~~~~~~~~
p925.cpp:626:23: error: 'iter_key_type' was not declared in this scope
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                       ^~~~~~~~~~~~~
p925.cpp:626:50: error: wrong number of template arguments (1, should be at least 2)
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:626:23: error: 'iter_key_type' was not declared in this scope
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                       ^~~~~~~~~~~~~
p925.cpp:626:50: error: wrong number of template arguments (1, should be at least 2)
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:626:23: error: 'iter_key_type' was not declared in this scope
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                       ^~~~~~~~~~~~~
p925.cpp:626:50: error: wrong number of template arguments (1, should be at least 2)
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:626:23: error: 'iter_key_type' was not declared in this scope
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                       ^~~~~~~~~~~~~
p925.cpp:626:50: error: wrong number of template arguments (1, should be at least 2)
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:626:4: error: invalid template-id
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:626:23: error: 'iter_key_type' was not declared in this scope
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                       ^~~~~~~~~~~~~
p925.cpp:626:50: error: expected primary-expression before '>' token
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                                                  ^
p925.cpp:626:50: error: trailing return type 'unordered_multimap<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_multimap<Key, T, Hash, Pred, Allocator>'
p925.cpp:626:51: error: expected ';' before ',' token
  626 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>,
      |                                                   ^
      |                                                   ;
p925.cpp:629:19: error: 'range_key_type' was not declared in this scope
  629 | class Hash = hash<range_key_type<R>>,
      |                   ^~~~~~~~~~~~~~
p925.cpp:629:35: error: template argument 1 is invalid
  629 | class Hash = hash<range_key_type<R>>,
      |                                   ^~
p925.cpp:630:23: error: 'range_key_type' was not declared in this scope
  630 | class Pred = equal_to<range_key_type<R>>,
      |                       ^~~~~~~~~~~~~~
p925.cpp:630:39: error: template argument 1 is invalid
  630 | class Pred = equal_to<range_key_type<R>>,
      |                                       ^~
p925.cpp:631:29: error: 'range_to_alloc_type' was not declared in this scope
  631 | class Allocator = allocator<range_to_alloc_type<R>>>
      |                             ^~~~~~~~~~~~~~~~~~~
p925.cpp:631:50: error: template argument 1 is invalid
  631 | class Allocator = allocator<range_to_alloc_type<R>>>
      |                                                  ^~
p925.cpp:632:32: error: expected ')' before ',' token
  632 | unordered_multimap(from_range_t, R&&, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                   ~            ^
      |                                )
p925.cpp:637:10: error: expected nested-name-specifier before 'see'
  637 | typename see below::size_type = see below,
      |          ^~~
p925.cpp:637:14: error: expected ',' or '...' before 'below'
  637 | typename see below::size_type = see below,
      |              ^~~~~
p925.cpp:641:59: error: expected nested-name-specifier before 'see'
  641 | unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                           ^~~
p925.cpp:641:63: error: expected ',' or '...' before 'below'
  641 | unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                               ^~~~~
p925.cpp:642:23: error: 'iter_key_type' was not declared in this scope
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                       ^~~~~~~~~~~~~
p925.cpp:642:50: error: wrong number of template arguments (1, should be at least 2)
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:642:23: error: 'iter_key_type' was not declared in this scope
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                       ^~~~~~~~~~~~~
p925.cpp:642:50: error: wrong number of template arguments (1, should be at least 2)
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:642:23: error: 'iter_key_type' was not declared in this scope
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                       ^~~~~~~~~~~~~
p925.cpp:642:50: error: wrong number of template arguments (1, should be at least 2)
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:642:23: error: 'iter_key_type' was not declared in this scope
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                       ^~~~~~~~~~~~~
p925.cpp:642:50: error: wrong number of template arguments (1, should be at least 2)
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:642:4: error: invalid template-id
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:642:23: error: 'iter_key_type' was not declared in this scope
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                       ^~~~~~~~~~~~~
p925.cpp:642:50: error: expected primary-expression before '>' token
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                                  ^
p925.cpp:642:50: error: trailing return type 'unordered_multimap<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_multimap<Key, T, Hash, Pred, Allocator>'
p925.cpp:642:51: error: expected ';' before ',' token
  642 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, hash<iter_key_type <InputIterator>>,
      |                                                   ^
      |                                                   ;
p925.cpp:646:23: error: 'iter' was not declared in this scope
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                       ^~~~
p925.cpp:646:28: error: 'key' was not declared in this scope; did you mean 'key_t'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                            ^~~
      |                            key_t
p925.cpp:646:32: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                ^~~~
      |                                std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:646:50: error: wrong number of template arguments (1, should be at least 2)
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:646:23: error: 'iter' was not declared in this scope
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                       ^~~~
p925.cpp:646:28: error: 'key' was not declared in this scope; did you mean 'key_t'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                            ^~~
      |                            key_t
p925.cpp:646:32: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                ^~~~
      |                                std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:646:50: error: wrong number of template arguments (1, should be at least 2)
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:646:23: error: 'iter' was not declared in this scope
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                       ^~~~
p925.cpp:646:28: error: 'key' was not declared in this scope; did you mean 'key_t'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                            ^~~
      |                            key_t
p925.cpp:646:32: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                ^~~~
      |                                std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:646:50: error: wrong number of template arguments (1, should be at least 2)
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:646:23: error: 'iter' was not declared in this scope
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                       ^~~~
p925.cpp:646:28: error: 'key' was not declared in this scope; did you mean 'key_t'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                            ^~~
      |                            key_t
p925.cpp:646:32: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                ^~~~
      |                                std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:646:50: error: wrong number of template arguments (1, should be at least 2)
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:646:4: error: invalid template-id
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:646:23: error: 'iter' was not declared in this scope
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                       ^~~~
p925.cpp:646:28: error: 'key' was not declared in this scope; did you mean 'key_t'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                            ^~~
      |                            key_t
p925.cpp:646:32: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                ^~~~
      |                                std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:646:50: error: expected primary-expression before '>' token
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                                  ^
p925.cpp:646:50: error: trailing return type 'unordered_multimap<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_multimap<Key, T, Hash, Pred, Allocator>'
p925.cpp:646:51: error: expected ';' before ',' token
  646 | -> unordered_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, hash<iter-key-type <InputIterator>>,
      |                                                   ^
      |                                                   ;
p925.cpp:649:118: error: expected nested-name-specifier before 'see'
  649 |  class Hash, class Allocator> unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Hash,
      |                                                                                         ^~~

p925.cpp:649:122: error: expected ',' or '...' before 'below'
  649 | ss Hash, class Allocator> unordered_multimap(InputIterator, InputIterator, typename see below::size_type, Hash,
      |                                                                                         ^~~~~

p925.cpp:651:23: error: 'iter_key_type' was not declared in this scope
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                       ^~~~~~~~~~~~~
p925.cpp:651:50: error: wrong number of template arguments (1, should be at least 2)
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:651:23: error: 'iter_key_type' was not declared in this scope
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                       ^~~~~~~~~~~~~
p925.cpp:651:50: error: wrong number of template arguments (1, should be at least 2)
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:651:23: error: 'iter_key_type' was not declared in this scope
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                       ^~~~~~~~~~~~~
p925.cpp:651:50: error: wrong number of template arguments (1, should be at least 2)
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:651:23: error: 'iter_key_type' was not declared in this scope
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                       ^~~~~~~~~~~~~
p925.cpp:651:50: error: wrong number of template arguments (1, should be at least 2)
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                                                  ^
p925.cpp:451:7: note: provided for 'template<class Key, class T, class Hash, class Pred, class Allocator> class pmr::std::unordered_multimap'
  451 | class unordered_multimap {
      |       ^~~~~~~~~~~~~~~~~~
p925.cpp:651:4: error: invalid template-id
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:651:23: error: 'iter_key_type' was not declared in this scope
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                       ^~~~~~~~~~~~~
p925.cpp:651:50: error: expected primary-expression before '>' token
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                                                  ^
p925.cpp:651:50: error: trailing return type 'unordered_multimap<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_multimap<Key, T, Hash, Pred, Allocator>'
p925.cpp:651:51: error: expected ';' before ',' token
  651 | -> unordered_multimap<iter_key_type<InputIterator>, iter_mapped_type<InputIterator>, Hash,
      |                                                   ^
      |                                                   ;
p925.cpp:654:32: error: expected ')' before ',' token
  654 | unordered_multimap(from_range_t, R&&, typename see_below::size_type, Allocator)
      |                   ~            ^
      |                                )
p925.cpp:657:41: error: expected ')' before ',' token
  657 |          unordered_multimap(from_range_t, R&&, Allocator)
      |                            ~            ^
      |                                         )
p925.cpp:659:93: error: expected ')' before ',' token
  659 | late<ranges::input_range R, class Hash, class Allocator> unordered_multimap(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                                                                            ~            ^
      |                                                                                         )
p925.cpp:661:107: error: expected nested-name-specifier before 'see'
  661 | , class T, class Allocator> unordered_multimap(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                                                         ^~~

p925.cpp:661:111: error: expected ',' or '...' before 'below'
  661 | ass T, class Allocator> unordered_multimap(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                                                         ^~~~~

p925.cpp:667:119: error: expected nested-name-specifier before 'see'
  667 | lass Hash, class Allocator> unordered_multimap(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                                                         ^~~

p925.cpp:667:123: error: expected ',' or '...' before 'below'
  667 |  Hash, class Allocator> unordered_multimap(initializer_list<pair<Key, T>>, typename see below::size_type,
      |                                                                                         ^~~~~

p925.cpp:673:1: error: deduction guide for 'std::unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>' must have trailing return type
  673 | unordered_multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      | ^~~~~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/bits/unordered_map.h:73:11: note: 'template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc> class std::unordered_multimap' declared here
   73 |     class unordered_multimap;
      |           ^~~~~~~~~~~~~~~~~~
p925.cpp:673:106: error: expected ')' before 'n'
  673 | _multimap() : unordered_multimap(size_type(see below)) { } explicit unordered_multimap(size_type n,
      |                                                                                       ~         ^~
      |                                                                                                 )
p925.cpp:679:1: error: 'size_type' has not been declared
  679 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:679:15: error: 'see_below' was not declared in this scope
  679 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:680:7: error: 'hasher' does not name a type
  680 | const hasher& hf = hasher(),
      |       ^~~~~~
p925.cpp:680:20: error: there are no arguments to 'hasher' that depend on a template parameter, so a declaration of 'hasher' must be available [-fpermissive]
  680 | const hasher& hf = hasher(),
      |                    ^~~~~~
p925.cpp:681:7: error: 'key_equal' does not name a type
  681 | const key_equal& eql = key_equal(),
      |       ^~~~~~~~~
p925.cpp:681:24: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
  681 | const key_equal& eql = key_equal(),
      |                        ^~~~~~~~~
p925.cpp:682:7: error: 'allocator_type' does not name a type
  682 | const allocator_type& a = allocator_type());
      |       ^~~~~~~~~~~~~~
p925.cpp:682:27: error: there are no arguments to 'allocator_type' that depend on a template parameter, so a declaration of 'allocator_type' must be available [-fpermissive]
  682 | const allocator_type& a = allocator_type());
      |                           ^~~~~~~~~~~~~~
p925.cpp:678:3: error: deduction guide for 'std::unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>' must have trailing return type
  678 |   unordered_multimap(InputIterator f, InputIterator l,
      |   ^~~~~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/bits/unordered_map.h:73:11: note: 'template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc> class std::unordered_multimap' declared here
   73 |     class unordered_multimap;
      |           ^~~~~~~~~~~~~~~~~~
p925.cpp:683:37: error: 'value_type' was not declared in this scope
  683 | template<container_compatible_range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |                                     ^~~~~~~~~~
p925.cpp:683:37: error: 'value_type' was not declared in this scope
p925.cpp:683:37: error: 'value_type' was not declared in this scope
p925.cpp:683:37: error: 'value_type' was not declared in this scope
p925.cpp:683:37: error: 'value_type' was not declared in this scope
p925.cpp:683:37: error: 'value_type' was not declared in this scope
p925.cpp:683:10: error: 'container_compatible_range' has not been declared
  683 | template<container_compatible_range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:683:36: error: expected '>' before '<' token
  683 | template<container_compatible_range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |                                    ^
p925.cpp:683:83: error: expected ')' before ',' token
  683 | template<container_compatible_range<value_type> R> unordered_multimap(from_range_t, R&& rg,
      |                                                                      ~            ^
      |                                                                                   )
p925.cpp:688:37: error: 'value_type' was not declared in this scope
  688 | unordered_multimap(initializer_list<value_type> il,
      |                                     ^~~~~~~~~~
p925.cpp:688:47: error: template argument 1 is invalid
  688 | unordered_multimap(initializer_list<value_type> il,
      |                                               ^
p925.cpp:689:1: error: 'size_type' has not been declared
  689 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:689:15: error: 'see_below' was not declared in this scope
  689 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:690:7: error: 'hasher' does not name a type
  690 | const hasher& hf = hasher(),
      |       ^~~~~~
p925.cpp:690:20: error: 'hasher' was not declared in this scope
  690 | const hasher& hf = hasher(),
      |                    ^~~~~~
p925.cpp:691:7: error: 'key_equal' does not name a type
  691 | const key_equal& eql = key_equal(),
      |       ^~~~~~~~~
p925.cpp:691:24: error: 'key_equal' was not declared in this scope
  691 | const key_equal& eql = key_equal(),
      |                        ^~~~~~~~~
p925.cpp:692:7: error: 'allocator_type' does not name a type
  692 | const allocator_type& a = allocator_type());
      |       ^~~~~~~~~~~~~~
p925.cpp:692:27: error: 'allocator_type' was not declared in this scope
  692 | const allocator_type& a = allocator_type());
      |                           ^~~~~~~~~~~~~~
p925.cpp:688:1: error: deduction guide for 'std::unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>' must have trailing return type
  688 | unordered_multimap(initializer_list<value_type> il,
      | ^~~~~~~~~~~~~~~~~~
/usr/local/include/c++/12.1.0/bits/unordered_map.h:73:11: note: 'template<class _Key, class _Tp, class _Hash, class _Pred, class _Alloc> class std::unordered_multimap' declared here
   73 |     class unordered_multimap;
      |           ^~~~~~~~~~~~~~~~~~
p925.cpp:697:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  697 |   iterator insert(P&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:697:3: error: deduced class type 'iterator' in function return type
  697 |   iterator insert(P&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:700:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  700 |   iterator insert(const_iterator hint, P&& obj);
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:700:19: error: 'template<class P> iterator<...auto...> pmr::insert' conflicts with a previous declaration
  700 |   iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~~~~~~~
p925.cpp:386:24: note: previous declaration 'int pmr::insert(P&&)'
  386 |   pair<iterator, bool> insert(P&& obj);
      |                        ^~~~~~
p925.cpp:700:19: error: 'const_iterator' was not declared in this scope
  700 |   iterator insert(const_iterator hint, P&& obj);
      |                   ^~~~~~~~~~~~~~
p925.cpp:700:41: error: expected primary-expression before '&&' token
  700 |   iterator insert(const_iterator hint, P&& obj);
      |                                         ^~
p925.cpp:700:44: error: 'obj' was not declared in this scope
  700 |   iterator insert(const_iterator hint, P&& obj);
      |                                            ^~~
p925.cpp:702:8: error: found ':' in nested-name-specifier, expected '::'
  702 | Effects: Equivalent to: return emplace_hint(hint, std::forward<P>(obj));
      |        ^
      |        ::
p925.cpp:702:1: error: 'Effects' does not name a type
  702 | Effects: Equivalent to: return emplace_hint(hint, std::forward<P>(obj));
      | ^~~~~~~
p925.cpp:708:29: error: 'c' was not declared in this scope
  708 |        auto original_size = c.size();
      |                             ^
p925.cpp:709:8: error: expected unqualified-id before 'for'
  709 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |        ^~~
p925.cpp:709:49: error: 'i' does not name a type
  709 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                 ^
p925.cpp:709:60: error: expected unqualified-id before ')' token
  709 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                            ^
p925.cpp:714:8: error: expected unqualified-id before 'return'
  714 |        return original_size - c.size();
      |        ^~~~~~
p925.cpp:737:21: error: 'implementation_defined' does not name a type
  737 |   using size_type = implementation_defined ; // see 24.2
      |                     ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:738:27: error: 'implementation_defined' does not name a type
  738 |   using difference_type = implementation_defined ; // see 24.2
      |                           ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:739:20: error: 'implementation_defined' does not name a type
  739 |   using iterator = implementation_defined ; // see 24.2
      |                    ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:740:26: error: 'implementation_defined' does not name a type
  740 |   using const_iterator = implementation_defined ; // see 24.2
      |                          ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:741:26: error: 'implementation_defined' does not name a type
  741 |   using local_iterator = implementation_defined ; // see 24.2
      |                          ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:742:32: error: 'implementation_defined' does not name a type
  742 |   using const_local_iterator = implementation_defined ; // see 24.2
      |                                ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:743:22: error: 'unspecified' does not name a type
  743 |   using node_type  = unspecified;
      |                      ^~~~~~~~~~~
p925.cpp:744:30: error: 'insert' does not name a type; did you mean 'assert'?
  744 |   using insert_return_type = insert-return-type<iterator, node_type>;
      |                              ^~~~~~
      |                              assert
p925.cpp:746:33: error: expected ')' before 'n'
  746 | explicit unordered_set(size_type n,
      |                       ~         ^~
      |                                 )
p925.cpp:752:1: error: 'size_type' has not been declared
  752 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:756:10: error: 'container_compatible_range' has not been declared
  756 | template<container_compatible_range<value_type> R> unordered_set(from_range_t, R&& rg,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:756:36: error: expected '>' before '<' token
  756 | template<container_compatible_range<value_type> R> unordered_set(from_range_t, R&& rg,
      |                                    ^
p925.cpp:756:78: error: expected ')' before ',' token
  756 | template<container_compatible_range<value_type> R> unordered_set(from_range_t, R&& rg,
      |                                                                 ~            ^
      |                                                                              )
p925.cpp:767:1: error: 'size_type' has not been declared
  767 | size_type n = see below,
      | ^~~~~~~~~
p925.cpp:771:24: error: expected ')' before 'n'
  771 | unordered_set(size_type n, const allocator_type& a)
      |              ~         ^~
      |                        )
p925.cpp:773:24: error: expected ')' before 'n'
  773 | unordered_set(size_type n, const hasher& hf, const allocator_type& a)
      |              ~         ^~
      |                        )
p925.cpp:776:51: error: 'size_type' has not been declared
  776 |   unordered_set(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
      |                                                   ^~~~~~~~~
p925.cpp:779:51: error: 'size_type' has not been declared
  779 |   unordered_set(InputIterator f, InputIterator l, size_type n, const hasher& hf,
      |                                                   ^~~~~~~~~
p925.cpp:782:48: error: 'size_type' has not been declared
  782 | unordered_set(initializer_list<value_type> il, size_type n, const allocator_type& a)
      |                                                ^~~~~~~~~
p925.cpp:784:10: error: 'container_compatible_range' has not been declared
  784 | template<container_compatible_range<value_type> R> unordered_set(from_range_t, R&& rg, size_type n, const allocator_type& a)
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:784:36: error: expected '>' before '<' token
  784 | template<container_compatible_range<value_type> R> unordered_set(from_range_t, R&& rg, size_type n, const allocator_type& a)
      |                                    ^
p925.cpp:784:78: error: expected ')' before ',' token
  784 | template<container_compatible_range<value_type> R> unordered_set(from_range_t, R&& rg, size_type n, const allocator_type& a)
      |                                                                 ~            ^
      |                                                                              )
p925.cpp:785:92: error: 'container_compatible_range' has not been declared
  785 | nordered_set(from_range, std::forward<R>(rg), n, hasher(), key_equal(), a) { } template<container_compatible_range<value_type> R>
      |                                                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~

p925.cpp:785:118: error: expected '>' before '<' token
  785 | td::forward<R>(rg), n, hasher(), key_equal(), a) { } template<container_compatible_range<value_type> R>
      |                                                                                         ^

p925.cpp:786:29: error: expected ')' before ',' token
  786 |   unordered_set(from_range_t, R&& rg, size_type n, const hasher& hf, const allocator_type& a)
      |                ~            ^
      |                             )
p925.cpp:788:48: error: 'size_type' has not been declared
  788 | unordered_set(initializer_list<value_type> il, size_type n, const hasher& hf,
      |                                                ^~~~~~~~~
p925.cpp:798:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  798 | iterator       begin() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:798:1: error: deduced class type 'iterator' in function return type
  798 | iterator       begin() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:799:1: error: 'const_iterator' does not name a type
  799 | const_iterator begin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:800:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  800 | iterator       end() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:800:1: error: deduced class type 'iterator' in function return type
  800 | iterator       end() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:801:1: error: 'const_iterator' does not name a type
  801 | const_iterator end() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:802:1: error: 'const_iterator' does not name a type
  802 | const_iterator cbegin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:803:1: error: 'const_iterator' does not name a type
  803 | const_iterator cend() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:806:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  806 | size_type size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:807:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  807 | size_type max_size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:809:30: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  809 | template<class... Args> pair<iterator, bool> emplace(Args&&... args);
      |                              ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:809:44: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  809 | template<class... Args> pair<iterator, bool> emplace(Args&&... args);
      |                                            ^
p925.cpp:809:44: note:   expected a type, got 'iterator'
p925.cpp:810:25: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  810 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:810:47: error: 'const_iterator' has not been declared
  810 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                               ^~~~~~~~~~~~~~
p925.cpp:810:25: error: deduced class type 'iterator' in function return type
  810 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:810:94: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  810 | ate<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                                                                         ^~~~~~~~

/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:810:108: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  810 | rgs> iterator emplace_hint(const_iterator position, Args&&... args); pair<iterator, bool> insert(const value_type& obj);
      |                                                                                         ^

p925.cpp:810:108: note:   expected a type, got 'iterator'
p925.cpp:811:6: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  811 | pair<iterator, bool> insert(value_type&& obj);
      |      ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:811:20: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  811 | pair<iterator, bool> insert(value_type&& obj);
      |                    ^
p925.cpp:811:20: note:   expected a type, got 'iterator'
p925.cpp:812:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  812 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:812:17: error: 'const_iterator' has not been declared
  812 | iterator insert(const_iterator hint, const value_type& obj);
      |                 ^~~~~~~~~~~~~~
p925.cpp:812:1: error: deduced class type 'iterator' in function return type
  812 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:813:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  813 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:813:17: error: 'const_iterator' has not been declared
  813 | iterator insert(const_iterator hint, value_type&& obj);
      |                 ^~~~~~~~~~~~~~
p925.cpp:813:1: error: deduced class type 'iterator' in function return type
  813 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:814:94: error: 'container' has not been declared
  814 | ate<class InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^~~~~~~~~

p925.cpp:814:103: error: expected '>' before '-' token
  814 |  InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^

p925.cpp:815:21: error: 'R' has not been declared
  815 |   void insert_range(R&& rg);
      |                     ^
p925.cpp:817:1: error: 'node_type' does not name a type
  817 | node_type extract(const_iterator position);
      | ^~~~~~~~~
p925.cpp:818:1: error: 'node_type' does not name a type
  818 | node_type extract(const key_type& x);
      | ^~~~~~~~~
p925.cpp:819:19: error: 'node_type' does not name a type
  819 | template<class K> node_type extract(K&& x);
      |                   ^~~~~~~~~
p925.cpp:820:1: error: 'insert_return_type' does not name a type
  820 | insert_return_type insert(node_type&& nh);
      | ^~~~~~~~~~~~~~~~~~
p925.cpp:821:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  821 | iterator           insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:821:27: error: 'const_iterator' has not been declared
  821 | iterator           insert(const_iterator hint, node_type&& nh);
      |                           ^~~~~~~~~~~~~~
p925.cpp:821:48: error: 'node_type' has not been declared
  821 | iterator           insert(const_iterator hint, node_type&& nh);
      |                                                ^~~~~~~~~
p925.cpp:821:1: error: deduced class type 'iterator' in function return type
  821 | iterator           insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:822:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  822 | iterator  erase(iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:822:17: error: class template placeholder 'std::iterator' not permitted in this context
  822 | iterator  erase(iterator position);
      |                 ^~~~~~~~
p925.cpp:822:17: note: use 'auto' for an abbreviated function template
p925.cpp:822:1: error: deduced class type 'iterator' in function return type
  822 | iterator  erase(iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:823:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  823 | iterator  erase(const_iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:823:17: error: 'const_iterator' has not been declared
  823 | iterator  erase(const_iterator position);
      |                 ^~~~~~~~~~~~~~
p925.cpp:823:1: error: deduced class type 'iterator' in function return type
  823 | iterator  erase(const_iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:824:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  824 | size_type erase(const key_type& k);
      | ^~~~~~~~~
      | size_t
p925.cpp:825:19: error: 'size_type' does not name a type; did you mean 'size_t'?
  825 | template<class K> size_type erase(K&& x);
      |                   ^~~~~~~~~
      |                   size_t
p925.cpp:826:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  826 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:826:17: error: 'const_iterator' has not been declared
  826 | iterator  erase(const_iterator first, const_iterator last);
      |                 ^~~~~~~~~~~~~~
p925.cpp:826:39: error: 'const_iterator' has not been declared
  826 | iterator  erase(const_iterator first, const_iterator last);
      |                                       ^~~~~~~~~~~~~~
p925.cpp:826:1: error: deduced class type 'iterator' in function return type
  826 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:837:14: error: 'unordered_multiset' has not been declared
  837 |   void merge(unordered_multiset<Key, H2, P2, Allocator>& source);
      |              ^~~~~~~~~~~~~~~~~~
p925.cpp:837:32: error: expected ',' or '...' before '<' token
  837 |   void merge(unordered_multiset<Key, H2, P2, Allocator>& source);
      |                                ^
p925.cpp:839:14: error: 'unordered_multiset' has not been declared
  839 |   void merge(unordered_multiset<Key, H2, P2, Allocator>&& source);
      |              ^~~~~~~~~~~~~~~~~~
p925.cpp:839:32: error: expected ',' or '...' before '<' token
  839 |   void merge(unordered_multiset<Key, H2, P2, Allocator>&& source);
      |                                ^
p925.cpp:839:8: error: 'template<class Key, class Hash, class Pred, class Allocator> template<class H2, class P2> void pmr::std::unordered_set<Key, Hash, Pred, Allocator>::merge(int)' cannot be overloaded with 'template<class Key, class Hash, class Pred, class Allocator> template<class H2, class P2> void pmr::std::unordered_set<Key, Hash, Pred, Allocator>::merge(int)'
  839 |   void merge(unordered_multiset<Key, H2, P2, Allocator>&& source);
      |        ^~~~~
p925.cpp:837:8: note: previous declaration 'template<class Key, class Hash, class Pred, class Allocator> template<class H2, class P2> void pmr::std::unordered_set<Key, Hash, Pred, Allocator>::merge(int)'
  837 |   void merge(unordered_multiset<Key, H2, P2, Allocator>& source);
      |        ^~~~~
p925.cpp:844:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  844 | iterator
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:844:1: error: invalid use of template-name 'std::iterator' without an argument list
  844 | iterator
      | ^~~~~~~~
p925.cpp:845:1: error: expected ';' at end of member declaration
  845 | const_iterator
      | ^~~~~~~~~~~~~~
      |               ;
p925.cpp:847:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  847 |   iterator
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:848:1: error: expected unqualified-id before 'template'
  848 | template<class K>
      | ^~~~~~~~
p925.cpp:850:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
  850 | find(const key_type& k) const;
      | ^~~~
p925.cpp:851:12: error: 'K' does not name a type
  851 | find(const K& k);
      |            ^
p925.cpp:851:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
  851 | find(const K& k);
      | ^~~~
p925.cpp:852:3: error: 'const_iterator' does not name a type
  852 |   const_iterator find(const K& k) const;
      |   ^~~~~~~~~~~~~~
p925.cpp:853:1: error: 'size_type' does not name a type; did you mean 'size_t'?
  853 | size_type        count(const key_type& k) const;
      | ^~~~~~~~~
      | size_t
p925.cpp:855:3: error: 'size_type' does not name a type; did you mean 'size_t'?
  855 |   size_type      count(const K& k) const;
      |   ^~~~~~~~~
      |   size_t
p925.cpp:859:10: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  859 |     pair<iterator, iterator>
      |          ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:859:20: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  859 |     pair<iterator, iterator>
      |                    ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:859:28: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  859 |     pair<iterator, iterator>
      |                            ^
p925.cpp:859:28: note:   expected a type, got 'iterator'
p925.cpp:859:28: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:859:28: note:   expected a type, got 'iterator'
p925.cpp:860:10: error: invalid use of non-static data member 'pmr::std::unordered_set<Key, Hash, Pred, Allocator>::const_iterator'
  860 |     pair<const_iterator, const_iterator>
      |          ^~~~~~~~~~~~~~
p925.cpp:845:1: note: declared here
  845 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:860:26: error: invalid use of non-static data member 'pmr::std::unordered_set<Key, Hash, Pred, Allocator>::const_iterator'
  860 |     pair<const_iterator, const_iterator>
      |                          ^~~~~~~~~~~~~~
p925.cpp:845:1: note: declared here
  845 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:860:40: error: template argument 1 is invalid
  860 |     pair<const_iterator, const_iterator>
      |                                        ^
p925.cpp:860:40: error: template argument 2 is invalid
p925.cpp:864:5: error: 'size_type' does not name a type; did you mean 'size_t'?
  864 |     size_type max_bucket_count() const noexcept;
      |     ^~~~~~~~~
      |     size_t
p925.cpp:865:5: error: 'size_type' does not name a type; did you mean 'size_t'?
  865 |     size_type bucket_size(size_type n) const;
      |     ^~~~~~~~~
      |     size_t
p925.cpp:866:5: error: 'size_type' does not name a type; did you mean 'size_t'?
  866 |     size_type bucket(const key_type& k) const;
      |     ^~~~~~~~~
      |     size_t
p925.cpp:867:5: error: 'local_iterator' does not name a type
  867 |     local_iterator begin(size_type n);
      |     ^~~~~~~~~~~~~~
p925.cpp:868:5: error: 'const_local_iterator' does not name a type
  868 |     const_local_iterator begin(size_type n) const;
      |     ^~~~~~~~~~~~~~~~~~~~
p925.cpp:869:5: error: 'local_iterator' does not name a type
  869 |     local_iterator end(size_type n);
      |     ^~~~~~~~~~~~~~
p925.cpp:870:5: error: 'const_local_iterator' does not name a type
  870 |     const_local_iterator end(size_type n) const;
      |     ^~~~~~~~~~~~~~~~~~~~
p925.cpp:871:5: error: 'const_local_iterator' does not name a type
  871 |     const_local_iterator cbegin(size_type n) const;
      |     ^~~~~~~~~~~~~~~~~~~~
p925.cpp:872:5: error: 'const_local_iterator' does not name a type
  872 |     const_local_iterator cend(size_type n) const;
      |     ^~~~~~~~~~~~~~~~~~~~
p925.cpp:877:17: error: 'size_type' has not been declared
  877 |     void rehash(size_type n);
      |                 ^~~~~~~~~
p925.cpp:878:18: error: 'size_type' has not been declared
  878 |     void reserve(size_type n);
      |                  ^~~~~~~~~
p925.cpp:752:15: error: 'see_below' was not declared in this scope
  752 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:767:15: error: 'see' was not declared in this scope
  767 | size_type n = see below,
      |               ^~~
p925.cpp:881:19: error: 'iter_value_type' was not declared in this scope
  881 | class Hash = hash<iter_value_type<InputIterator>>,
      |                   ^~~~~~~~~~~~~~~
p925.cpp:881:48: error: template argument 1 is invalid
  881 | class Hash = hash<iter_value_type<InputIterator>>,
      |                                                ^~
p925.cpp:882:23: error: 'iter_value_type' was not declared in this scope
  882 | class Pred = equal_to<iter_value_type<InputIterator>>,
      |                       ^~~~~~~~~~~~~~~
p925.cpp:882:52: error: template argument 1 is invalid
  882 | class Pred = equal_to<iter_value_type<InputIterator>>,
      |                                                    ^~
p925.cpp:883:29: error: 'iter' was not declared in this scope
  883 | class Allocator = allocator<iter-value-type<InputIterator>>>
      |                             ^~~~
p925.cpp:883:34: error: 'value' was not declared in this scope
  883 | class Allocator = allocator<iter-value-type<InputIterator>>>
      |                                  ^~~~~
p925.cpp:883:40: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  883 | class Allocator = allocator<iter-value-type<InputIterator>>>
      |                                        ^~~~
      |                                        std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:883:58: error: template argument 1 is invalid
  883 | class Allocator = allocator<iter-value-type<InputIterator>>>
      |                                                          ^~
p925.cpp:884:54: error: 'see_below' has not been declared
  884 | unordered_set(InputIterator, InputIterator, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                      ^~~~~~~~~
p925.cpp:884:77: error: 'see_below' was not declared in this scope
  884 | unordered_set(InputIterator, InputIterator, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                                             ^~~~~~~~~
p925.cpp:885:18: error: 'iter' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                  ^~~~
p925.cpp:885:23: error: 'value' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~~
p925.cpp:885:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:885:47: error: template argument 1 is invalid
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                               ^
p925.cpp:885:47: error: template argument 2 is invalid
p925.cpp:885:47: error: template argument 3 is invalid
p925.cpp:885:47: error: template argument 4 is invalid
p925.cpp:885:18: error: 'iter' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                  ^~~~
p925.cpp:885:23: error: 'value' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~~
p925.cpp:885:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:885:47: error: template argument 1 is invalid
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                               ^
p925.cpp:885:47: error: template argument 2 is invalid
p925.cpp:885:47: error: template argument 3 is invalid
p925.cpp:885:47: error: template argument 4 is invalid
p925.cpp:885:18: error: 'iter' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                  ^~~~
p925.cpp:885:23: error: 'value' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~~
p925.cpp:885:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:885:47: error: template argument 1 is invalid
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                               ^
p925.cpp:885:47: error: template argument 2 is invalid
p925.cpp:885:47: error: template argument 3 is invalid
p925.cpp:885:47: error: template argument 4 is invalid
p925.cpp:885:18: error: 'iter' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                  ^~~~
p925.cpp:885:23: error: 'value' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~~
p925.cpp:885:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:885:47: error: template argument 1 is invalid
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                               ^
p925.cpp:885:47: error: template argument 2 is invalid
p925.cpp:885:47: error: template argument 3 is invalid
p925.cpp:885:47: error: template argument 4 is invalid
p925.cpp:885:4: error: invalid template-id
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |    ^~~~~~~~~~~~~
p925.cpp:885:18: error: 'iter' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                  ^~~~
p925.cpp:885:23: error: 'value' was not declared in this scope
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~~
p925.cpp:885:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:885:47: error: expected primary-expression before '>' token
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                               ^
p925.cpp:885:47: error: trailing return type 'unordered_set<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_set<Key, Hash, Pred, Allocator>'
p925.cpp:885:48: error: expected ';' before ',' token
  885 | -> unordered_set<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                ^
      |                                                ;
p925.cpp:890:27: error: expected ')' before ',' token
  890 | unordered_set(from_range_t, R&&, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |              ~            ^
      |                           )
p925.cpp:892:56: error: 'key_type' does not name a type; did you mean 'key_t'?
  892 |                                      equal_range(const key_type& k) const;
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:892:74: error: expected constructor, destructor, or type conversion before ';' token
  892 |                                      equal_range(const key_type& k) const;
      |                                                                          ^
p925.cpp:893:56: error: 'K' does not name a type
  893 |                                      equal_range(const K& k);
      |                                                        ^
p925.cpp:893:61: error: expected constructor, destructor, or type conversion before ';' token
  893 |                                      equal_range(const K& k);
      |                                                             ^
p925.cpp:894:6: error: 'const_iterator' was not declared in this scope
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |      ^~~~~~~~~~~~~~
p925.cpp:894:22: error: 'const_iterator' was not declared in this scope
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                      ^~~~~~~~~~~~~~
p925.cpp:894:36: error: template argument 1 is invalid
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                    ^
p925.cpp:894:36: error: template argument 2 is invalid
p925.cpp:894:56: error: 'K' does not name a type
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                        ^
p925.cpp:894:62: error: non-member function 'int pmr::std::equal_range(const int&)' cannot have cv-qualifier
  894 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                              ^~~~~
p925.cpp:895:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  895 |   pair<iterator, iterator>
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:895:18: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
  895 |   pair<iterator, iterator>
      |                  ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:895:26: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
  895 |   pair<iterator, iterator>
      |                          ^
p925.cpp:895:26: note:   expected a type, got 'iterator'
p925.cpp:895:26: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:895:26: note:   expected a type, got 'iterator'
p925.cpp:896:1: error: expected unqualified-id before 'template'
  896 | template<class K>
      | ^~~~~~~~
p925.cpp:902:45: error: 'see_below' has not been declared
  902 | unordered_set(initializer_list<T>, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                             ^~~~~~~~~
p925.cpp:902:68: error: 'see_below' was not declared in this scope
  902 | unordered_set(initializer_list<T>, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                                    ^~~~~~~~~
p925.cpp:905:54: error: expected nested-name-specifier before 'see'
  905 | unordered_set(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                      ^~~
p925.cpp:905:58: error: expected ',' or '...' before 'below'
  905 | unordered_set(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                          ^~~~~
p925.cpp:906:18: error: 'iter_value_type' was not declared in this scope
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                  ^~~~~~~~~~~~~~~
p925.cpp:906:47: error: template argument 1 is invalid
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                                               ^
p925.cpp:906:47: error: template argument 2 is invalid
p925.cpp:906:47: error: template argument 3 is invalid
p925.cpp:906:47: error: template argument 4 is invalid
p925.cpp:906:18: error: 'iter_value_type' was not declared in this scope
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                  ^~~~~~~~~~~~~~~
p925.cpp:906:47: error: template argument 1 is invalid
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                                               ^
p925.cpp:906:47: error: template argument 2 is invalid
p925.cpp:906:47: error: template argument 3 is invalid
p925.cpp:906:47: error: template argument 4 is invalid
p925.cpp:906:18: error: 'iter_value_type' was not declared in this scope
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                  ^~~~~~~~~~~~~~~
p925.cpp:906:47: error: template argument 1 is invalid
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                                               ^
p925.cpp:906:47: error: template argument 2 is invalid
p925.cpp:906:47: error: template argument 3 is invalid
p925.cpp:906:47: error: template argument 4 is invalid
p925.cpp:906:18: error: 'iter_value_type' was not declared in this scope
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                  ^~~~~~~~~~~~~~~
p925.cpp:906:47: error: template argument 1 is invalid
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                                               ^
p925.cpp:906:47: error: template argument 2 is invalid
p925.cpp:906:47: error: template argument 3 is invalid
p925.cpp:906:47: error: template argument 4 is invalid
p925.cpp:906:4: error: invalid template-id
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |    ^~~~~~~~~~~~~
p925.cpp:906:18: error: 'iter_value_type' was not declared in this scope
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                  ^~~~~~~~~~~~~~~
p925.cpp:906:47: error: expected primary-expression before '>' token
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                                               ^
p925.cpp:906:47: error: trailing return type 'unordered_set<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_set<Key, Hash, Pred, Allocator>'
p925.cpp:906:48: error: expected ';' before ',' token
  906 | -> unordered_set<iter_value_type<InputIterator>, hash<iter_value_type <InputIterator>>,
      |                                                ^
      |                                                ;
p925.cpp:908:113: error: expected nested-name-specifier before 'see'
  908 | ator, class Hash, class Allocator> unordered_set(InputIterator, InputIterator, typename see below::size_type,
      |                                                                                         ^~~

p925.cpp:908:117: error: expected ',' or '...' before 'below'
  908 | , class Hash, class Allocator> unordered_set(InputIterator, InputIterator, typename see below::size_type,
      |                                                                                         ^~~~~

p925.cpp:910:18: error: 'iter' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                  ^~~~
p925.cpp:910:23: error: 'value' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                       ^~~~~
p925.cpp:910:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:910:47: error: template argument 1 is invalid
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                                               ^
p925.cpp:910:47: error: template argument 2 is invalid
p925.cpp:910:47: error: template argument 3 is invalid
p925.cpp:910:47: error: template argument 4 is invalid
p925.cpp:910:18: error: 'iter' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                  ^~~~
p925.cpp:910:23: error: 'value' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                       ^~~~~
p925.cpp:910:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:910:47: error: template argument 1 is invalid
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                                               ^
p925.cpp:910:47: error: template argument 2 is invalid
p925.cpp:910:47: error: template argument 3 is invalid
p925.cpp:910:47: error: template argument 4 is invalid
p925.cpp:910:18: error: 'iter' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                  ^~~~
p925.cpp:910:23: error: 'value' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                       ^~~~~
p925.cpp:910:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:910:47: error: template argument 1 is invalid
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                                               ^
p925.cpp:910:47: error: template argument 2 is invalid
p925.cpp:910:47: error: template argument 3 is invalid
p925.cpp:910:47: error: template argument 4 is invalid
p925.cpp:910:18: error: 'iter' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                  ^~~~
p925.cpp:910:23: error: 'value' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                       ^~~~~
p925.cpp:910:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:910:47: error: template argument 1 is invalid
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                                               ^
p925.cpp:910:47: error: template argument 2 is invalid
p925.cpp:910:47: error: template argument 3 is invalid
p925.cpp:910:47: error: template argument 4 is invalid
p925.cpp:910:4: error: invalid template-id
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |    ^~~~~~~~~~~~~
p925.cpp:910:18: error: 'iter' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                  ^~~~
p925.cpp:910:23: error: 'value' was not declared in this scope
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                       ^~~~~
p925.cpp:910:29: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                             ^~~~
      |                             std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:910:47: error: expected primary-expression before '>' token
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                                               ^
p925.cpp:910:47: error: trailing return type 'unordered_set<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_set<Key, Hash, Pred, Allocator>'
p925.cpp:910:48: error: expected ';' before ',' token
  910 | -> unordered_set<iter-value-type<InputIterator>, Hash,
      |                                                ^
      |                                                ;
p925.cpp:913:27: error: expected ')' before ',' token
  913 | unordered_set(from_range_t, R&&, typename see below::size_type, Allocator)
      |              ~            ^
      |                           )
p925.cpp:917:36: error: expected ')' before ',' token
  917 |          unordered_set(from_range_t, R&&, Allocator)
      |                       ~            ^
      |                                    )
p925.cpp:920:88: error: expected ')' before ',' token
  920 | template<ranges::input_range R, class Hash, class Allocator> unordered_set(from_range_t, R&&, typename see below::size_type, Hash, Allocator)
      |                                                                           ~            ^
      |                                                                                        )
p925.cpp:924:45: error: expected nested-name-specifier before 'see'
  924 | unordered_set(initializer_list<T>, typename see below::size_type, Allocator)
      |                                             ^~~
p925.cpp:924:49: error: expected ',' or '...' before 'below'
  924 | unordered_set(initializer_list<T>, typename see below::size_type, Allocator)
      |                                                 ^~~~~
p925.cpp:927:45: error: expected nested-name-specifier before 'see'
  927 | unordered_set(initializer_list<T>, typename see below::size_type, Hash, Allocator)
      |                                             ^~~
p925.cpp:927:49: error: expected ',' or '...' before 'below'
  927 | unordered_set(initializer_list<T>, typename see below::size_type, Hash, Allocator)
      |                                                 ^~~~~
p925.cpp:932:1: error: ISO C++ forbids declaration of 'unordered_set' with no type [-fpermissive]
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      | ^~~~~~~~~~~~~
p925.cpp: In function 'int pmr::unordered_set()':
p925.cpp:932:19: error: only constructors take member initializers
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                   ^~~~~~~~~~~~~
p925.cpp:932:43: error: 'see' was not declared in this scope
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                           ^~~
p925.cpp:932:33: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                 ^~~~~~~~~
      |                                 size_t
p925.cpp:932:57: warning: no return statement in function returning non-void [-Wreturn-type]
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                         ^
p925.cpp: At global scope:
p925.cpp:932:68: error: ISO C++ forbids declaration of 'unordered_set' with no type [-fpermissive]
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                                    ^~~~~~~~~~~~~
p925.cpp:932:59: error: 'explicit' outside class declaration
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                           ^~~~~~~~
p925.cpp:932:82: error: 'int pmr::unordered_set' redeclared as different kind of entity
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                                                  ^~~~~~~~~
p925.cpp:932:1: note: previous declaration 'int pmr::unordered_set()'
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      | ^~~~~~~~~~~~~
p925.cpp:932:82: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
  932 | unordered_set() : unordered_set(size_type(see below)) { } explicit unordered_set(size_type n,
      |                                                                                  ^~~~~~~~~
      |                                                                                  size_t
p925.cpp:933:1: error: expected primary-expression before 'const'
  933 | const hasher& hf = hasher(),
      | ^~~~~
p925.cpp:934:1: error: expected primary-expression before 'const'
  934 | const key_equal& eql = key_equal(),
      | ^~~~~
p925.cpp:935:1: error: expected primary-expression before 'const'
  935 | const allocator_type& a = allocator_type());
      | ^~~~~
p925.cpp:938:1: error: 'size_type' has not been declared
  938 | size_type n = see below,
      | ^~~~~~~~~
p925.cpp:938:15: error: 'see' was not declared in this scope
  938 | size_type n = see below,
      |               ^~~
p925.cpp:938:19: error: expected ',' or '...' before 'below'
  938 | size_type n = see below,
      |                   ^~~~~
p925.cpp:941:44: error: expected constructor, destructor, or type conversion before ';' token
  941 | const allocator_type& a = allocator_type());
      |                                            ^
p925.cpp:942:37: error: 'value_type' was not declared in this scope
  942 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                     ^~~~~~~~~~
p925.cpp:942:37: error: 'value_type' was not declared in this scope
p925.cpp:942:37: error: 'value_type' was not declared in this scope
p925.cpp:942:37: error: 'value_type' was not declared in this scope
p925.cpp:942:37: error: 'value_type' was not declared in this scope
p925.cpp:942:37: error: 'value_type' was not declared in this scope
p925.cpp:942:10: error: 'container_compatible_range' has not been declared
  942 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:942:36: error: expected '>' before '<' token
  942 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                    ^
p925.cpp:942:70: error: expected constructor, destructor, or type conversion before '(' token
  942 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                                                      ^
p925.cpp:947:32: error: 'value_type' was not declared in this scope
  947 | unordered_set(initializer_list<value_type> il, size_type n = see below,
      |                                ^~~~~~~~~~
p925.cpp:947:42: error: template argument 1 is invalid
  947 | unordered_set(initializer_list<value_type> il, size_type n = see below,
      |                                          ^
p925.cpp:947:48: error: 'size_type' has not been declared
  947 | unordered_set(initializer_list<value_type> il, size_type n = see below,
      |                                                ^~~~~~~~~
p925.cpp:947:62: error: 'see' was not declared in this scope
  947 | unordered_set(initializer_list<value_type> il, size_type n = see below,
      |                                                              ^~~
p925.cpp:947:66: error: expected ',' or '...' before 'below'
  947 | unordered_set(initializer_list<value_type> il, size_type n = see below,
      |                                                                  ^~~~~
p925.cpp:950:58: error: expected constructor, destructor, or type conversion before ';' token
  950 |               const allocator_type& a = allocator_type());
      |                                                          ^
p925.cpp:954:12: error: expected nested-name-specifier before 'unordered_set'
  954 |   typename unordered_set<K, H, P, A>::size_type
      |            ^~~~~~~~~~~~~
p925.cpp:954:37: error: expected '(' after template-argument-list
  954 |   typename unordered_set<K, H, P, A>::size_type
      |                                     ^~
p925.cpp:955:2: error: 'unord' was not declared in this scope
  955 | [unord.set.erasure]
      |  ^~~~~
p925.cpp:956:5: error: expected initializer before 'erase_if'
  956 |     erase_if(unordered_set<K, H, P, A>& c, Predicate pred);
      |     ^~~~~~~~
p925.cpp:957:8: error: found ':' in nested-name-specifier, expected '::'
  957 | Effects: Equivalent to:
      |        ^
      |        ::
p925.cpp:957:1: error: 'Effects' does not name a type
  957 | Effects: Equivalent to:
      | ^~~~~~~
p925.cpp:959:8: error: expected unqualified-id before 'for'
  959 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |        ^~~
p925.cpp:959:49: error: 'i' does not name a type
  959 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                 ^
p925.cpp:959:60: error: expected unqualified-id before ')' token
  959 |        for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                            ^
p925.cpp:964:8: error: expected unqualified-id before 'return'
  964 |        return original_size - c.size();
      |        ^~~~~~
p925.cpp:987:19: error: 'implementation_defined' does not name a type
  987 | using size_type = implementation_defined ; // see 24.2
      |                   ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:988:25: error: 'implementation_defined' does not name a type
  988 | using difference_type = implementation_defined ; // see 24.2
      |                         ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:989:18: error: 'implementation_defined' does not name a type
  989 | using iterator = implementation_defined ; // see 24.2
      |                  ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:990:24: error: 'implementation_defined' does not name a type
  990 | using const_iterator = implementation_defined ; // see 24.2
      |                        ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:991:25: error: 'implementation_defined' does not name a type
  991 | using local_iterator  = implementation_defined ; // see 24.2
      |                         ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:992:31: error: 'implementation_defined' does not name a type
  992 | using const_local_iterator  = implementation_defined ; // see 24.2
      |                               ^~~~~~~~~~~~~~~~~~~~~~
p925.cpp:993:19: error: 'unspecified' does not name a type
  993 | using node_type = unspecified ;
      |                   ^~~~~~~~~~~
p925.cpp:995:38: error: expected ')' before 'n'
  995 | explicit unordered_multiset(size_type n,
      |                            ~         ^~
      |                                      )
p925.cpp:1001:1: error: 'size_type' has not been declared
 1001 | size_type n = see below,
      | ^~~~~~~~~
p925.cpp:1005:10: error: 'container_compatible_range' has not been declared
 1005 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:1005:36: error: expected '>' before '<' token
 1005 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                    ^
p925.cpp:1005:83: error: expected ')' before ',' token
 1005 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                                                      ~            ^
      |                                                                                   )
p925.cpp:1016:1: error: 'size_type' has not been declared
 1016 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:1020:29: error: expected ')' before 'n'
 1020 | unordered_multiset(size_type n, const allocator_type& a)
      |                   ~         ^~
      |                             )
p925.cpp:1022:29: error: expected ')' before 'n'
 1022 | unordered_multiset(size_type n, const hasher& hf, const allocator_type& a)
      |                   ~         ^~
      |                             )
p925.cpp:1025:56: error: 'size_type' has not been declared
 1025 |   unordered_multiset(InputIterator f, InputIterator l, size_type n, const allocator_type& a)
      |                                                        ^~~~~~~~~
p925.cpp:1028:56: error: 'size_type' has not been declared
 1028 |   unordered_multiset(InputIterator f, InputIterator l, size_type n, const hasher& hf,
      |                                                        ^~~~~~~~~
p925.cpp:1030:64: error: 'container_compatible_range' has not been declared
 1030 | : unordered_multiset(f, l, n, hf, key_equal(), a) { } template<container_compatible_range<value_type> R>
      |                                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:1030:90: error: expected '>' before '<' token
 1030 |  unordered_multiset(f, l, n, hf, key_equal(), a) { } template<container_compatible_range<value_type> R>
      |                                                                                         ^

p925.cpp:1031:34: error: expected ')' before ',' token
 1031 |   unordered_multiset(from_range_t, R&& rg, size_type n, const allocator_type& a)
      |                     ~            ^
      |                                  )
p925.cpp:1034:10: error: 'container' has not been declared
 1034 | template<container-compatible-range<value_type> R> unordered_multiset(from_range_t, R&& rg, size_type n, const hasher& hf,
      |          ^~~~~~~~~
p925.cpp:1034:19: error: expected '>' before '-' token
 1034 | template<container-compatible-range<value_type> R> unordered_multiset(from_range_t, R&& rg, size_type n, const hasher& hf,
      |                   ^
p925.cpp:1034:83: error: expected ')' before ',' token
 1034 | template<container-compatible-range<value_type> R> unordered_multiset(from_range_t, R&& rg, size_type n, const hasher& hf,
      |                                                                      ~            ^
      |                                                                                   )
p925.cpp:1037:53: error: 'size_type' has not been declared
 1037 | unordered_multiset(initializer_list<value_type> il, size_type n, const allocator_type& a)
      |                                                     ^~~~~~~~~
p925.cpp:1039:53: error: 'size_type' has not been declared
 1039 | unordered_multiset(initializer_list<value_type> il, size_type n, const hasher& hf,
      |                                                     ^~~~~~~~~
p925.cpp:1049:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1049 | iterator       begin() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1049:1: error: deduced class type 'iterator' in function return type
 1049 | iterator       begin() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1050:1: error: 'const_iterator' does not name a type
 1050 | const_iterator begin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:1051:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1051 | iterator       end() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1051:1: error: deduced class type 'iterator' in function return type
 1051 | iterator       end() noexcept;
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1052:1: error: 'const_iterator' does not name a type
 1052 | const_iterator end() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:1053:1: error: 'const_iterator' does not name a type
 1053 | const_iterator cbegin() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:1054:1: error: 'const_iterator' does not name a type
 1054 | const_iterator cend() const noexcept;
      | ^~~~~~~~~~~~~~
p925.cpp:1057:1: error: 'size_type' does not name a type; did you mean 'size_t'?
 1057 | size_type size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:1058:1: error: 'size_type' does not name a type; did you mean 'size_t'?
 1058 | size_type max_size() const noexcept;
      | ^~~~~~~~~
      | size_t
p925.cpp:1060:25: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1060 | template<class... Args> iterator emplace(Args&&... args);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1060:25: error: deduced class type 'iterator' in function return type
 1060 | template<class... Args> iterator emplace(Args&&... args);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1061:25: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1061 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1061:47: error: 'const_iterator' has not been declared
 1061 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                                               ^~~~~~~~~~~~~~
p925.cpp:1061:25: error: deduced class type 'iterator' in function return type
 1061 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1061:89: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1061 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                                                                                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1061:89: error: deduced class type 'iterator' in function return type
 1061 | template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); iterator insert(const value_type& obj);
      |                                                                                         ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1062:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1062 | iterator insert(value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1062:1: error: deduced class type 'iterator' in function return type
 1062 | iterator insert(value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1063:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1063 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1063:17: error: 'const_iterator' has not been declared
 1063 | iterator insert(const_iterator hint, const value_type& obj);
      |                 ^~~~~~~~~~~~~~
p925.cpp:1063:1: error: deduced class type 'iterator' in function return type
 1063 | iterator insert(const_iterator hint, const value_type& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1064:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1064 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1064:17: error: 'const_iterator' has not been declared
 1064 | iterator insert(const_iterator hint, value_type&& obj);
      |                 ^~~~~~~~~~~~~~
p925.cpp:1064:1: error: deduced class type 'iterator' in function return type
 1064 | iterator insert(const_iterator hint, value_type&& obj);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1065:94: error: 'container' has not been declared
 1065 | ate<class InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^~~~~~~~~

p925.cpp:1065:103: error: expected '>' before '-' token
 1065 |  InputIterator> void insert(InputIterator first, InputIterator last); template<container-compatible-range<value_type> R>
      |                                                                                         ^

p925.cpp:1066:21: error: 'R' has not been declared
 1066 |   void insert_range(R&& rg);
      |                     ^
p925.cpp:1068:1: error: 'node_type' does not name a type
 1068 | node_type extract(const_iterator position);
      | ^~~~~~~~~
p925.cpp:1069:1: error: 'node_type' does not name a type
 1069 | node_type extract(const key_type& x);
      | ^~~~~~~~~
p925.cpp:1070:19: error: 'node_type' does not name a type
 1070 | template<class K> node_type extract(K&& x);
      |                   ^~~~~~~~~
p925.cpp:1071:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1071 | iterator insert(node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1071:17: error: 'node_type' has not been declared
 1071 | iterator insert(node_type&& nh);
      |                 ^~~~~~~~~
p925.cpp:1071:1: error: deduced class type 'iterator' in function return type
 1071 | iterator insert(node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1072:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1072 | iterator insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1072:17: error: 'const_iterator' has not been declared
 1072 | iterator insert(const_iterator hint, node_type&& nh);
      |                 ^~~~~~~~~~~~~~
p925.cpp:1072:38: error: 'node_type' has not been declared
 1072 | iterator insert(const_iterator hint, node_type&& nh);
      |                                      ^~~~~~~~~
p925.cpp:1072:1: error: deduced class type 'iterator' in function return type
 1072 | iterator insert(const_iterator hint, node_type&& nh);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1073:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1073 | iterator  erase(iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1073:17: error: class template placeholder 'std::iterator' not permitted in this context
 1073 | iterator  erase(iterator position);
      |                 ^~~~~~~~
p925.cpp:1073:17: note: use 'auto' for an abbreviated function template
p925.cpp:1073:1: error: deduced class type 'iterator' in function return type
 1073 | iterator  erase(iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1074:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1074 | iterator  erase(const_iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1074:17: error: 'const_iterator' has not been declared
 1074 | iterator  erase(const_iterator position);
      |                 ^~~~~~~~~~~~~~
p925.cpp:1074:1: error: deduced class type 'iterator' in function return type
 1074 | iterator  erase(const_iterator position);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1075:1: error: 'size_type' does not name a type; did you mean 'size_t'?
 1075 | size_type erase(const key_type& k);
      | ^~~~~~~~~
      | size_t
p925.cpp:1076:19: error: 'size_type' does not name a type; did you mean 'size_t'?
 1076 | template<class K> size_type erase(K&& x);
      |                   ^~~~~~~~~
      |                   size_t
p925.cpp:1077:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1077 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1077:17: error: 'const_iterator' has not been declared
 1077 | iterator  erase(const_iterator first, const_iterator last);
      |                 ^~~~~~~~~~~~~~
p925.cpp:1077:39: error: 'const_iterator' has not been declared
 1077 | iterator  erase(const_iterator first, const_iterator last);
      |                                       ^~~~~~~~~~~~~~
p925.cpp:1077:1: error: deduced class type 'iterator' in function return type
 1077 | iterator  erase(const_iterator first, const_iterator last);
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1095:1: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1095 | iterator
      | ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1095:1: error: invalid use of template-name 'std::iterator' without an argument list
 1095 | iterator
      | ^~~~~~~~
p925.cpp:1096:1: error: expected ';' at end of member declaration
 1096 | const_iterator
      | ^~~~~~~~~~~~~~
      |               ;
p925.cpp:1098:3: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1098 |   iterator
      |   ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1099:1: error: expected unqualified-id before 'template'
 1099 | template<class K>
      | ^~~~~~~~
p925.cpp:1101:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
 1101 | find(const key_type& k) const;
      | ^~~~
p925.cpp:1102:12: error: 'K' does not name a type
 1102 | find(const K& k);
      |            ^
p925.cpp:1102:1: error: ISO C++ forbids declaration of 'find' with no type [-fpermissive]
 1102 | find(const K& k);
      | ^~~~
p925.cpp:1103:3: error: 'const_iterator' does not name a type
 1103 |   const_iterator find(const K& k) const;
      |   ^~~~~~~~~~~~~~
p925.cpp:1104:1: error: 'size_type' does not name a type; did you mean 'size_t'?
 1104 | size_type        count(const key_type& k) const;
      | ^~~~~~~~~
      | size_t
p925.cpp:1106:3: error: 'size_type' does not name a type; did you mean 'size_t'?
 1106 |   size_type      count(const K& k) const;
      |   ^~~~~~~~~
      |   size_t
p925.cpp:1110:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1110 |   pair<iterator, iterator>
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1110:18: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1110 |   pair<iterator, iterator>
      |                  ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1110:26: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
 1110 |   pair<iterator, iterator>
      |                          ^
p925.cpp:1110:26: note:   expected a type, got 'iterator'
p925.cpp:1110:26: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:1110:26: note:   expected a type, got 'iterator'
p925.cpp:1111:8: error: invalid use of non-static data member 'pmr::std::unordered_multiset<Key, Hash, Pred, Allocator>::const_iterator'
 1111 |   pair<const_iterator, const_iterator>
      |        ^~~~~~~~~~~~~~
p925.cpp:1096:1: note: declared here
 1096 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:1111:24: error: invalid use of non-static data member 'pmr::std::unordered_multiset<Key, Hash, Pred, Allocator>::const_iterator'
 1111 |   pair<const_iterator, const_iterator>
      |                        ^~~~~~~~~~~~~~
p925.cpp:1096:1: note: declared here
 1096 | const_iterator
      | ^~~~~~~~~~~~~~
p925.cpp:1111:38: error: template argument 1 is invalid
 1111 |   pair<const_iterator, const_iterator>
      |                                      ^
p925.cpp:1111:38: error: template argument 2 is invalid
p925.cpp:1115:3: error: 'size_type' does not name a type; did you mean 'size_t'?
 1115 |   size_type max_bucket_count() const noexcept;
      |   ^~~~~~~~~
      |   size_t
p925.cpp:1116:3: error: 'size_type' does not name a type; did you mean 'size_t'?
 1116 |   size_type bucket_size(size_type n) const;
      |   ^~~~~~~~~
      |   size_t
p925.cpp:1117:3: error: 'size_type' does not name a type; did you mean 'size_t'?
 1117 |   size_type bucket(const key_type& k) const;
      |   ^~~~~~~~~
      |   size_t
p925.cpp:1118:3: error: 'local_iterator' does not name a type
 1118 |   local_iterator begin(size_type n);
      |   ^~~~~~~~~~~~~~
p925.cpp:1119:3: error: 'const_local_iterator' does not name a type
 1119 |   const_local_iterator begin(size_type n) const;
      |   ^~~~~~~~~~~~~~~~~~~~
p925.cpp:1120:3: error: 'local_iterator' does not name a type
 1120 |   local_iterator end(size_type n);
      |   ^~~~~~~~~~~~~~
p925.cpp:1121:3: error: 'const_local_iterator' does not name a type
 1121 |   const_local_iterator end(size_type n) const;
      |   ^~~~~~~~~~~~~~~~~~~~
p925.cpp:1122:3: error: 'const_local_iterator' does not name a type
 1122 |   const_local_iterator cbegin(size_type n) const;
      |   ^~~~~~~~~~~~~~~~~~~~
p925.cpp:1123:3: error: 'const_local_iterator' does not name a type
 1123 |   const_local_iterator cend(size_type n) const;
      |   ^~~~~~~~~~~~~~~~~~~~
p925.cpp:1128:15: error: 'size_type' has not been declared
 1128 |   void rehash(size_type n);
      |               ^~~~~~~~~
p925.cpp:1129:16: error: 'size_type' has not been declared
 1129 |   void reserve(size_type n);
      |                ^~~~~~~~~
p925.cpp:1001:15: error: 'see' was not declared in this scope
 1001 | size_type n = see below,
      |               ^~~
p925.cpp:1016:15: error: 'see_below' was not declared in this scope
 1016 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:1132:19: error: 'iter_value_type' was not declared in this scope
 1132 | class Hash = hash<iter_value_type<InputIterator>>,
      |                   ^~~~~~~~~~~~~~~
p925.cpp:1132:48: error: template argument 1 is invalid
 1132 | class Hash = hash<iter_value_type<InputIterator>>,
      |                                                ^~
p925.cpp:1133:23: error: 'iter_value_type' was not declared in this scope
 1133 | class Pred = equal_to<iter_value_type<InputIterator>>,
      |                       ^~~~~~~~~~~~~~~
p925.cpp:1133:52: error: template argument 1 is invalid
 1133 | class Pred = equal_to<iter_value_type<InputIterator>>,
      |                                                    ^~
p925.cpp:1134:29: error: 'iter' was not declared in this scope
 1134 | class Allocator = allocator<iter-value-type<InputIterator>>>
      |                             ^~~~
p925.cpp:1134:34: error: 'value' was not declared in this scope
 1134 | class Allocator = allocator<iter-value-type<InputIterator>>>
      |                                  ^~~~~
p925.cpp:1134:40: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1134 | class Allocator = allocator<iter-value-type<InputIterator>>>
      |                                        ^~~~
      |                                        std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1134:58: error: template argument 1 is invalid
 1134 | class Allocator = allocator<iter-value-type<InputIterator>>>
      |                                                          ^~
p925.cpp:1135:50: error: 'see_below' has not been declared
 1135 | unordered_multiset(InputIterator, InputIterator, see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                  ^~~~~~~~~
p925.cpp:1135:73: error: 'see_below' was not declared in this scope
 1135 | unordered_multiset(InputIterator, InputIterator, see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                                         ^~~~~~~~~
p925.cpp:1136:23: error: 'iter' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~
p925.cpp:1136:28: error: 'value' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                            ^~~~~
p925.cpp:1136:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1136:52: error: template argument 1 is invalid
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                    ^
p925.cpp:1136:52: error: template argument 2 is invalid
p925.cpp:1136:52: error: template argument 3 is invalid
p925.cpp:1136:52: error: template argument 4 is invalid
p925.cpp:1136:23: error: 'iter' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~
p925.cpp:1136:28: error: 'value' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                            ^~~~~
p925.cpp:1136:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1136:52: error: template argument 1 is invalid
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                    ^
p925.cpp:1136:52: error: template argument 2 is invalid
p925.cpp:1136:52: error: template argument 3 is invalid
p925.cpp:1136:52: error: template argument 4 is invalid
p925.cpp:1136:23: error: 'iter' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~
p925.cpp:1136:28: error: 'value' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                            ^~~~~
p925.cpp:1136:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1136:52: error: template argument 1 is invalid
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                    ^
p925.cpp:1136:52: error: template argument 2 is invalid
p925.cpp:1136:52: error: template argument 3 is invalid
p925.cpp:1136:52: error: template argument 4 is invalid
p925.cpp:1136:23: error: 'iter' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~
p925.cpp:1136:28: error: 'value' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                            ^~~~~
p925.cpp:1136:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1136:52: error: template argument 1 is invalid
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                    ^
p925.cpp:1136:52: error: template argument 2 is invalid
p925.cpp:1136:52: error: template argument 3 is invalid
p925.cpp:1136:52: error: template argument 4 is invalid
p925.cpp:1136:4: error: invalid template-id
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:1136:23: error: 'iter' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                       ^~~~
p925.cpp:1136:28: error: 'value' was not declared in this scope
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                            ^~~~~
p925.cpp:1136:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1136:52: error: expected primary-expression before '>' token
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                    ^
p925.cpp:1136:52: error: trailing return type 'unordered_multiset<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_multiset<Key, Hash, Pred, Allocator>'
p925.cpp:1136:53: error: expected ';' before ',' token
 1136 | -> unordered_multiset<iter-value-type<InputIterator>, Hash, Pred, Allocator>;
      |                                                     ^
      |                                                     ;
p925.cpp:1141:32: error: expected ')' before ',' token
 1141 | unordered_multiset(from_range_t, R&&, typename see_below::size_type = see_below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                   ~            ^
      |                                )
p925.cpp:1143:56: error: 'key_type' does not name a type; did you mean 'key_t'?
 1143 |                                      equal_range(const key_type& k) const;
      |                                                        ^~~~~~~~
      |                                                        key_t
p925.cpp:1143:74: error: expected constructor, destructor, or type conversion before ';' token
 1143 |                                      equal_range(const key_type& k) const;
      |                                                                          ^
p925.cpp:1144:56: error: 'K' does not name a type
 1144 |                                      equal_range(const K& k);
      |                                                        ^
p925.cpp:1144:61: error: expected constructor, destructor, or type conversion before ';' token
 1144 |                                      equal_range(const K& k);
      |                                                             ^
p925.cpp:1145:6: error: 'const_iterator' was not declared in this scope
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |      ^~~~~~~~~~~~~~
p925.cpp:1145:22: error: 'const_iterator' was not declared in this scope
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                      ^~~~~~~~~~~~~~
p925.cpp:1145:36: error: template argument 1 is invalid
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                    ^
p925.cpp:1145:36: error: template argument 2 is invalid
p925.cpp:1145:56: error: 'K' does not name a type
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                        ^
p925.cpp:1145:62: error: non-member function 'int pmr::std::equal_range(const int&)' cannot have cv-qualifier
 1145 | pair<const_iterator, const_iterator> equal_range(const K& k) const;
      |                                                              ^~~~~
p925.cpp:1146:8: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1146 |   pair<iterator, iterator>
      |        ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1146:18: warning: 'template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator' is deprecated [-Wdeprecated-declarations]
 1146 |   pair<iterator, iterator>
      |                  ^~~~~~~~
/usr/local/include/c++/12.1.0/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
p925.cpp:1146:26: error: type/value mismatch at argument 1 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
 1146 |   pair<iterator, iterator>
      |                          ^
p925.cpp:1146:26: note:   expected a type, got 'iterator'
p925.cpp:1146:26: error: type/value mismatch at argument 2 in template parameter list for 'template<class _T1, class _T2> struct std::pair'
p925.cpp:1146:26: note:   expected a type, got 'iterator'
p925.cpp:1147:1: error: expected unqualified-id before 'template'
 1147 | template<class K>
      | ^~~~~~~~
p925.cpp:1152:50: error: expected nested-name-specifier before 'see'
 1152 | unordered_multiset(initializer_list<T>, typename see below::size_type = see below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                  ^~~
p925.cpp:1152:54: error: expected ',' or '...' before 'below'
 1152 | unordered_multiset(initializer_list<T>, typename see below::size_type = see below, Hash = Hash(), Pred = Pred(), Allocator = Allocator())
      |                                                      ^~~~~
p925.cpp:1155:59: error: expected nested-name-specifier before 'see'
 1155 | unordered_multiset(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                           ^~~
p925.cpp:1155:63: error: expected ',' or '...' before 'below'
 1155 | unordered_multiset(InputIterator, InputIterator, typename see below::size_type, Allocator)
      |                                                               ^~~~~
p925.cpp:1156:23: error: 'iter' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                       ^~~~
p925.cpp:1156:28: error: 'value' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                            ^~~~~
p925.cpp:1156:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1156:52: error: template argument 1 is invalid
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                                    ^
p925.cpp:1156:52: error: template argument 2 is invalid
p925.cpp:1156:52: error: template argument 3 is invalid
p925.cpp:1156:52: error: template argument 4 is invalid
p925.cpp:1156:23: error: 'iter' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                       ^~~~
p925.cpp:1156:28: error: 'value' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                            ^~~~~
p925.cpp:1156:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1156:52: error: template argument 1 is invalid
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                                    ^
p925.cpp:1156:52: error: template argument 2 is invalid
p925.cpp:1156:52: error: template argument 3 is invalid
p925.cpp:1156:52: error: template argument 4 is invalid
p925.cpp:1156:23: error: 'iter' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                       ^~~~
p925.cpp:1156:28: error: 'value' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                            ^~~~~
p925.cpp:1156:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1156:52: error: template argument 1 is invalid
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                                    ^
p925.cpp:1156:52: error: template argument 2 is invalid
p925.cpp:1156:52: error: template argument 3 is invalid
p925.cpp:1156:52: error: template argument 4 is invalid
p925.cpp:1156:23: error: 'iter' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                       ^~~~
p925.cpp:1156:28: error: 'value' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                            ^~~~~
p925.cpp:1156:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1156:52: error: template argument 1 is invalid
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                                    ^
p925.cpp:1156:52: error: template argument 2 is invalid
p925.cpp:1156:52: error: template argument 3 is invalid
p925.cpp:1156:52: error: template argument 4 is invalid
p925.cpp:1156:4: error: invalid template-id
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:1156:23: error: 'iter' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                       ^~~~
p925.cpp:1156:28: error: 'value' was not declared in this scope
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                            ^~~~~
p925.cpp:1156:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1156:52: error: expected primary-expression before '>' token
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                                    ^
p925.cpp:1156:52: error: trailing return type 'unordered_multiset<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_multiset<Key, Hash, Pred, Allocator>'
p925.cpp:1156:53: error: expected ';' before ',' token
 1156 | -> unordered_multiset<iter-value-type<InputIterator>, hash<iter-value-type <InputIterator>>,
      |                                                     ^
      |                                                     ;
p925.cpp:1158:118: error: expected nested-name-specifier before 'see'
 1158 |  class Hash, class Allocator> unordered_multiset(InputIterator, InputIterator, typename see below::size_type,
      |                                                                                         ^~~

p925.cpp:1158:122: error: expected ',' or '...' before 'below'
 1158 | ss Hash, class Allocator> unordered_multiset(InputIterator, InputIterator, typename see below::size_type,
      |                                                                                         ^~~~~

p925.cpp:1160:23: error: 'iter' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                       ^~~~
p925.cpp:1160:28: error: 'value' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                            ^~~~~
p925.cpp:1160:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1160:52: error: template argument 1 is invalid
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                                    ^
p925.cpp:1160:52: error: template argument 2 is invalid
p925.cpp:1160:52: error: template argument 3 is invalid
p925.cpp:1160:52: error: template argument 4 is invalid
p925.cpp:1160:23: error: 'iter' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                       ^~~~
p925.cpp:1160:28: error: 'value' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                            ^~~~~
p925.cpp:1160:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1160:52: error: template argument 1 is invalid
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                                    ^
p925.cpp:1160:52: error: template argument 2 is invalid
p925.cpp:1160:52: error: template argument 3 is invalid
p925.cpp:1160:52: error: template argument 4 is invalid
p925.cpp:1160:23: error: 'iter' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                       ^~~~
p925.cpp:1160:28: error: 'value' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                            ^~~~~
p925.cpp:1160:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1160:52: error: template argument 1 is invalid
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                                    ^
p925.cpp:1160:52: error: template argument 2 is invalid
p925.cpp:1160:52: error: template argument 3 is invalid
p925.cpp:1160:52: error: template argument 4 is invalid
p925.cpp:1160:23: error: 'iter' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                       ^~~~
p925.cpp:1160:28: error: 'value' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                            ^~~~~
p925.cpp:1160:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1160:52: error: template argument 1 is invalid
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                                    ^
p925.cpp:1160:52: error: template argument 2 is invalid
p925.cpp:1160:52: error: template argument 3 is invalid
p925.cpp:1160:52: error: template argument 4 is invalid
p925.cpp:1160:4: error: invalid template-id
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |    ^~~~~~~~~~~~~~~~~~
p925.cpp:1160:23: error: 'iter' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                       ^~~~
p925.cpp:1160:28: error: 'value' was not declared in this scope
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                            ^~~~~
p925.cpp:1160:34: error: 'type' was not declared in this scope; did you mean 'std::__cmp_cat::type'?
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                  ^~~~
      |                                  std::__cmp_cat::type
/usr/local/include/c++/12.1.0/compare:51:11: note: 'std::__cmp_cat::type' declared here
   51 |     using type = signed char;
      |           ^~~~
p925.cpp:1160:52: error: expected primary-expression before '>' token
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                                    ^
p925.cpp:1160:52: error: trailing return type 'unordered_multiset<...auto...>' of deduction guide is not a specialization of 'pmr::std::unordered_multiset<Key, Hash, Pred, Allocator>'
p925.cpp:1160:53: error: expected ';' before ',' token
 1160 | -> unordered_multiset<iter-value-type<InputIterator>, Hash,
      |                                                     ^
      |                                                     ;
p925.cpp:1163:32: error: expected ')' before ',' token
 1163 | unordered_multiset(from_range_t, R&&, typename see_below::size_type, Allocator)
      |                   ~            ^
      |                                )
p925.cpp:1167:41: error: expected ')' before ',' token
 1167 |          unordered_multiset(from_range_t, R&&, Allocator)
      |                            ~            ^
      |                                         )
p925.cpp:1170:93: error: expected ')' before ',' token
 1170 | late<ranges::input_range R, class Hash, class Allocator> unordered_multiset(from_range_t, R&&, typename see_below::size_type, Hash, Allocator)
      |                                                                            ~            ^
      |                                                                                         )
p925.cpp:1174:50: error: 'see_below' has not been declared
 1174 | unordered_multiset(initializer_list<T>, typename see_below::size_type, Allocator)
      |                                                  ^~~~~~~~~
p925.cpp:1177:50: error: 'see_below' has not been declared
 1177 | unordered_multiset(initializer_list<T>, typename see_below::size_type, Hash, Allocator)
      |                                                  ^~~~~~~~~
p925.cpp:1182:1: error: ISO C++ forbids declaration of 'unordered_multiset' with no type [-fpermissive]
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      | ^~~~~~~~~~~~~~~~~~
p925.cpp: In function 'int pmr::unordered_multiset()':
p925.cpp:1182:24: error: only constructors take member initializers
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                        ^~~~~~~~~~~~~~~~~~
p925.cpp:1182:53: error: 'see_below' was not declared in this scope
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                     ^~~~~~~~~
p925.cpp:1182:43: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                           ^~~~~~~~~
      |                                           size_t
p925.cpp:1182:67: warning: no return statement in function returning non-void [-Wreturn-type]
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                   ^
p925.cpp: At global scope:
p925.cpp:1182:78: error: ISO C++ forbids declaration of 'unordered_multiset' with no type [-fpermissive]
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                              ^~~~~~~~~~~~~~~~~~
p925.cpp:1182:69: error: 'explicit' outside class declaration
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                     ^~~~~~~~
p925.cpp:1182:97: error: 'int pmr::unordered_multiset' redeclared as different kind of entity
 1182 | d_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                                         ^~~~~~~~~

p925.cpp:1182:1: note: previous declaration 'int pmr::unordered_multiset()'
 1182 | unordered_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      | ^~~~~~~~~~~~~~~~~~
p925.cpp:1182:97: error: 'size_type' was not declared in this scope; did you mean 'size_t'?
 1182 | d_multiset() : unordered_multiset(size_type(see_below)) { } explicit unordered_multiset(size_type n,
      |                                                                                         ^~~~~~~~~
      |                                                                                         size_t
p925.cpp:1183:1: error: expected primary-expression before 'const'
 1183 | const hasher& hf = hasher(),
      | ^~~~~
p925.cpp:1184:1: error: expected primary-expression before 'const'
 1184 | const key_equal& eql = key_equal(),
      | ^~~~~
p925.cpp:1185:1: error: expected primary-expression before 'const'
 1185 | const allocator_type& a = allocator_type());
      | ^~~~~
p925.cpp:1188:1: error: 'size_type' has not been declared
 1188 | size_type n = see_below,
      | ^~~~~~~~~
p925.cpp:1188:15: error: 'see_below' was not declared in this scope
 1188 | size_type n = see_below,
      |               ^~~~~~~~~
p925.cpp:1189:7: error: 'hasher' does not name a type
 1189 | const hasher& hf = hasher(),
      |       ^~~~~~
p925.cpp:1189:20: error: there are no arguments to 'hasher' that depend on a template parameter, so a declaration of 'hasher' must be available [-fpermissive]
 1189 | const hasher& hf = hasher(),
      |                    ^~~~~~
p925.cpp:1190:7: error: 'key_equal' does not name a type
 1190 | const key_equal& eql = key_equal(),
      |       ^~~~~~~~~
p925.cpp:1190:24: error: there are no arguments to 'key_equal' that depend on a template parameter, so a declaration of 'key_equal' must be available [-fpermissive]
 1190 | const key_equal& eql = key_equal(),
      |                        ^~~~~~~~~
p925.cpp:1191:7: error: 'allocator_type' does not name a type
 1191 | const allocator_type& a = allocator_type());
      |       ^~~~~~~~~~~~~~
p925.cpp:1191:27: error: there are no arguments to 'allocator_type' that depend on a template parameter, so a declaration of 'allocator_type' must be available [-fpermissive]
 1191 | const allocator_type& a = allocator_type());
      |                           ^~~~~~~~~~~~~~
p925.cpp:1191:44: error: expected constructor, destructor, or type conversion before ';' token
 1191 | const allocator_type& a = allocator_type());
      |                                            ^
p925.cpp:1192:37: error: 'value_type' was not declared in this scope
 1192 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                     ^~~~~~~~~~
p925.cpp:1192:37: error: 'value_type' was not declared in this scope
p925.cpp:1192:37: error: 'value_type' was not declared in this scope
p925.cpp:1192:37: error: 'value_type' was not declared in this scope
p925.cpp:1192:37: error: 'value_type' was not declared in this scope
p925.cpp:1192:37: error: 'value_type' was not declared in this scope
p925.cpp:1192:10: error: 'container_compatible_range' has not been declared
 1192 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
p925.cpp:1192:36: error: expected '>' before '<' token
 1192 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                    ^
p925.cpp:1192:70: error: expected constructor, destructor, or type conversion before '(' token
 1192 | template<container_compatible_range<value_type> R> unordered_multiset(from_range_t, R&& rg,
      |                                                                      ^
p925.cpp:1197:37: error: 'value_type' was not declared in this scope
 1197 | unordered_multiset(initializer_list<value_type> il, size_type n = see_below,
      |                                     ^~~~~~~~~~
p925.cpp:1197:47: error: template argument 1 is invalid
 1197 | unordered_multiset(initializer_list<value_type> il, size_type n = see_below,
      |                                               ^
p925.cpp:1197:53: error: 'size_type' has not been declared
 1197 | unordered_multiset(initializer_list<value_type> il, size_type n = see_below,
      |                                                     ^~~~~~~~~
p925.cpp:1197:67: error: 'see_below' was not declared in this scope
 1197 | unordered_multiset(initializer_list<value_type> il, size_type n = see_below,
      |                                                                   ^~~~~~~~~
p925.cpp:1198:26: error: 'hasher' does not name a type
 1198 |                    const hasher& hf = hasher(),
      |                          ^~~~~~
p925.cpp:1198:39: error: 'hasher' was not declared in this scope
 1198 |                    const hasher& hf = hasher(),
      |                                       ^~~~~~
p925.cpp:1199:26: error: 'key_equal' does not name a type
 1199 |                    const key_equal& eql = key_equal(),
      |                          ^~~~~~~~~
p925.cpp:1199:43: error: 'key_equal' was not declared in this scope
 1199 |                    const key_equal& eql = key_equal(),
      |                                           ^~~~~~~~~
p925.cpp:1200:26: error: 'allocator_type' does not name a type
 1200 |                    const allocator_type& a = allocator_type());
      |                          ^~~~~~~~~~~~~~
p925.cpp:1200:46: error: 'allocator_type' was not declared in this scope
 1200 |                    const allocator_type& a = allocator_type());
      |                                              ^~~~~~~~~~~~~~
p925.cpp:1200:63: error: expected constructor, destructor, or type conversion before ';' token
 1200 |                    const allocator_type& a = allocator_type());
      |                                                               ^
p925.cpp:1205:12: error: expected nested-name-specifier before 'unordered_multiset'
 1205 |   typename unordered_multiset<K, H, P, A>::size_type
      |            ^~~~~~~~~~~~~~~~~~
p925.cpp:1205:42: error: expected '(' after template-argument-list
 1205 |   typename unordered_multiset<K, H, P, A>::size_type
      |                                          ^~
p925.cpp:1206:1: error: expected initializer before 'erase_if'
 1206 | erase_if(unordered_multiset<K, H, P, A>& c, Predicate pred);
      | ^~~~~~~~
p925.cpp:1208:25: error: 'c' was not declared in this scope
 1208 |    auto original_size = c.size();
      |                         ^
p925.cpp:1209:4: error: expected unqualified-id before 'for'
 1209 |    for (auto i = c.begin(), last = c.end(); i != last; ) {
      |    ^~~
p925.cpp:1209:45: error: 'i' does not name a type
 1209 |    for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                             ^
p925.cpp:1209:56: error: expected unqualified-id before ')' token
 1209 |    for (auto i = c.begin(), last = c.end(); i != last; ) {
      |                                                        ^
p925.cpp:1214:4: error: expected unqualified-id before 'return'
 1214 |    return original_size - c.size();
      |    ^~~~~~
p925.cpp: In function 'int pmr::main()':
p925.cpp:1217:13: error: 'n4910' was not declared in this scope
 1217 |   cout  <<  n4910 << endl;
      |             ^~~~~
p925.cpp: At global scope:
p925.cpp:1219:2: error: expected '}' at end of input
 1219 | }
      |  ^
p925.cpp:55:15: note: to match this '{'
   55 | namespace pmr {
      |               ^

検討事項(agenda)

コンパイルエラーを取るか、コンパイルエラーの理由を解説する。

参考資料(reference)

関連する自己参照以外は、こちらの先頭に移転。

C言語(C++)に対する誤解、曲解、無理解、爽快。

#include "N4910.h"

C++N4910資料の改善点

dockerにclang

docker gnu(gcc/g++) and llvm(clang/clang++)

コンパイル用shell script C版(clangとgcc)とC++版(clang++とg++)

C++N4910:2022 tag follower 300人超えました。ありがとうございます。

astyle 使ってみた

DoCAP(ドゥーキャップ)って何ですか?

小川メソッド 覚え(書きかけ)

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴(document history)

ver. 0.01 初稿  20220807

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?