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

    <tr>
        <th>Summary</th>
        <td>
            Clang rejects valid program with default argument
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    The following[ valid](https://cplusplus.github.io/CWG/issues/2608.html) program is rejected by clang. [Demo](https://godbolt.org/z/8eP8xTdeq)


```
template <typename T> class Container {                                                                                                                                                                                                                                                    
    public:                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                    
        template<typename U = T> 
        std::enable_if_t<std::is_same_v<T, int>> foo(const T&)
        {
            
        }
};                                                                                                                                                                                                                                                              

template<typename T>
void func(T&& callable)
{
    Container<int> c;
    (c.*callable)(4);
}
int main(){                                                                                                                                                                                                                                
                                                                                                                                                                                                                                             
  func(&Container<int>::foo); //works with gcc but not with clang and msvc


```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztVsmSmzAQ_Rpx6QqFxWI4cPDYk1xzcCpHl0ACKxESQcLO5OvTgvE248ucpioTFYuW5rXoVr96leFP5XYvoDFKmaPULUkf4MCU5CTdEJrvnestiVeEfsar7tVo_R220u3HKpQGZ9ffv-BTWjsKix2aRXm4d50itIB-MO3AOpAWBvFD1E5wqJ6gVky3IaCzjejMPVet4ZVRLjRDi6M_eOfia_57y8UvxCXRhkSrm2cWPV_T0ImuV8wJIPHaPfVCs07AlsSP3rW1sDbaManFAGT5AB-wzWHyvX6slKwx8O-9pXdrl1j8b29rt5E7Fd11zX3DCtzMlXdrbB33xR6v0K5SYiebncMPz9PS7iwC7A44uSV0DVLj-qMHagzSTl4bbR0i0-xMCOdtLR9e5_SlyeaZOLATf0gKuLRrIr2XRJ--efVgJIdm1DUmYA59BjVTyqfwwsvX4T8zLQLOKQQkmysDn8qQ0NU1DM0T_zqZnZOFANAhGhr49X-fuj8gNZ1--fmU4Ql7fYRmiph4wJ8SmDXD0Qw_LRxRmkBb11CNDrRx88SkOIBpDp091DfKYbmBuxoiEOUiy4o4p0mRBLyMeREXLHDSKVGuJ7xZ09hZMZ3FzuSQi4aNygEb2rET2gXjoMoXGmcWUbXpcKDU4fT6hEAe91pVpQWNomBfJnVTxFmURHyR5kWSMNpw2qQVDgreiCjAGhLKliitCKVaHGGCwD6qrECWNKJ0saDpIqYLugzzKGVVnDciYWlSCUGSSGCBqdDvw4uvYCinLVVja3FRSevsZRGllGy1EJM7xGej25uhHJhmTBvTB5Pzctr8X4c-TTI">