<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/95732>95732</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang] template template argument has different template parameters
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          bobby3605
      </td>
    </tr>
</table>

<pre>
    I'm trying to make a class that takes a container that takes a template as a template parameter for the class.
The following compiles in gcc, but not clang on 18.1.0. Clang trunk gives a different compilation error, which I am creating a separate issue for.
https://godbolt.org/z/j7cn3rd59
My guess is that it has something to do with the fact that std::vector takes two template arguments, one for the type, and one for the allocator. However, std::vector has a default argument for the allocator, so it only needs a single argument, but clang doesn't detect that.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkU81yozAMfhpz0ZQBEzdw4NBtJ7M97G1fwNgC3BorY4tksk-_Y5Jttu2JQSPp-7N0Sm4KiL1QP4R6KfTKM8V-oGG4NI-VKgayl_5VyP0CHC8uTMAEi35H0GC8Tgl41gys3zHlEgXWLmD8XGZcjl4zgv70d9RRL8gYYaQ8gdeVpaheRPX0e0YYyXs6Z1hDy9F5TOACTMYI-QzDyhCI81CYgALUbVmXVQnPW4HjGt5hcqeNgnXjiBED3zZpdhQAY6SYd51nZ2Z4Bb2Aiag5Q2pImCkygktpzWzijdvMfEyieRLyIORhIjuQ55LiJOThj5CHt70JTbSqu7b_usC0Ykrgbn45hlknSLQgzzdXLcHZ8bz5MGrD187ENuM0Tyc0nF3aLOUz_WdqnNYFA6cshAJ-uMmXI-aaDvZTXXtPRjPFEn7SGU-4WfAVad7Csjjq1fMHyPcl2yxlSRT8BQKizYPJhcnfyf0L7BqWJUxByD2DRcab1rKwfWO7ptMF9vW-blWnukoVc9_satXulTK2HbpHU3WtxBbVaFE3RtZV4XpZyV31WO-rZqcqVY4DIkrZdq009SBrsatw0c6X3p-WHFSxRdp3at_IwusBfdqOQMqNoZAy30Psc__DsE5J7CrvEqf7Bnbst8u5TqiXeyTfstncvL_B7yeQijX6_su7cjyvQ2loEfKQYW-fh2OkNzQs5GFTkYQ8XIWcevk3AAD__y0WS6E">