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

    <tr>
        <th>Summary</th>
        <td>
            Ambiguity between empty parameter pack and function with default argument
        </td>
    </tr>

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

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

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

<pre>
    The following code used to be accepted by Clang (up until Clang 15), and is not anymore:

```
#include <type_traits>

template <typename ...Args>
void f(int, Args&& ...args) { }

template <typename T = int>
void f(int, std::enable_if_t<sizeof(T) != 0, int> = 0) { }

int main() {
    f(0);
}
```

This is now ambiguous. Repro: https://godbolt.org/z/9sjv74M6f

It seems that GCC and MSVC are happy with it. I'm not sure whether this is a Clang regression and I didn't find the commit after a quick check through the `git log`, but Clang folks may know whether this was intended or not.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEU8GO4zYM_Rr5QqxhS4kdH3zIZppiDntpg14HskXb2siSK1ETeL--kON2tosWCwQKRD8-Pj5SMgQ9WsSWHT-z40smI03Ot0ZpZy1mnVNre5sQBmeMe2g7Qu8UQgyogBx0CLLvcSFU0K1wMdKOwPgpLhAtabNHyiPjDeMXkFaBDmAdgbTr7DwycWbFCyv-Pqti_z2vXGjbm6gQmLjQuuAbeakpMPHL92mE82Ik_YOyckbI8_zsxw_ou9MKBsZP2lISs33kFeNVgsrt1gCrPwOrX37KfgMmXiBR_R9_IJW6E2e0sjP4poc3YuIS9Dd0CXbbyvEy8RQp4UkG-_0_pWhLMEttGT_tiGccALbSKY-JPfiR-4Or23mbdHgO4wFy7vQYXQw5_IaLd0ycYSJaQmqAXxm_jk51zlDu_Mj49Rvj1yZ8fa8PX6rhe9JXgoA4B6BJEvx6eY78y-9_XEB6hEkuywoPTRNoyuGV8XretiFEj_CYkCb0QLsyua-Px9FjCNrZje0VlFaW8Zpg0FYBTQi9m2dNIAdCDxL-jLq_Qz9hfweavIvjtMFYVYyawLgxmcEv0EXaiwzO3APMcoV7cuRfWh4ypOGgVajA-aQ4z1QrVCMamWFbVnVRcFHWh2xqi2N9ONSn00nggLwoqq4Tjay7gtdNxXmd6ZYXnJfpEGUjylw0TdWXQyf4sS9V1bBDgbPUJjfmfU6OZzqEiO2xEeUhM7JDE7YHy3mftDNxHrzb9DHO0zP2bUr91MUxsENhdKDwQUaaDLbnbeSaVuiQHogWcF5ohUV6OWOycZH9fTN8iLan5P42OIWDjIZA-jHOaCmL3rQ_LIumKXZ572bGr6nu_vdp8e4r9sT4desoMH7dmvorAAD__8QgZbg">