<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJy1VE2PmzAQ_TVwsYrAhLAcOGRJt4dqL1WkHitjD4lbg1PbZJX--o4J5GND2kPVyCjGM_PmzfMMtRbHcrOTlhyYkoJwLSBIV0G8DuJVsIzHNbw6aPeKObRX7riHjrVA1mDkAUSQfjz5WGd67sgzs-j2PMLcRd8DBbQi0z6KIsQjXDFrpwQbtF37kM27CPIFrCPzPKprkLQaQr37KZHPFeQjV4K_IYg-BbRAvDUR0LBeuXM53mVOig2do0TPlK6gue7sI3J0YkfP9AK69GQGlvl6FBU3jwW-qPROkGonlcCyVlP24WAQZUaJ3spuS16P3nfQYj7oRpqTbU4-b_2rhNdqTVAnuc5J6UkSot0OzCnNaiSJzpfTP6olO0daJruJaX5XQlqhz9CITt5UGGTPuFp2rOFb3_UW2z9b4zrHNUqzMbIZNLhGuHC6nS4cQcY57B0IUh_Jp6ryjfCGkEAqxfAe9gYJWYL1ETBGm0dzOhmJ0xpr7I5nrQkz274Fj9JoM07Y2RjQfFQ8_y8de8tyDa32JHfO7a0vhb7g2nIebbWotXKRNls8-YXP5ywzX_nrE1zf4BfwrAUR0vLeWqm7ezjrGP-hD2DwSt4irls8-4lPVqTxMkkK3OYpzbKiCEWZiiItWMh6t9OmfAFhwt6o8h1B6XZ9PUIpdZj-PuyN_g7c4au0tgfrs6RJsgh35SJf8AxinudNAkmciThNgC7jOl0kebqMQ8VqULb0jUVpB29kgMA9dlX47wxkSWNK4ySJaRIv4iRaPhV1TtOmbnK6pKIJFjHgMKjI43jdQ1MOkHW_tWhU0jp7MWLXyG0HMBBGhk46BeWj7w9pe2ydGobGtf6U2fnpn_t-egDZTJ9rFIZgpDuGQ4nlUN9vTir_eA>53114</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            template<typename T> must be the same as template<typename T, typename... Rest> if Rest... is empty
        </td>
    </tr>

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

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

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

<pre>
    This valid code:
```
template<typename Derived>
struct Base;

template<template<typename, typename...> class DerivedType, typename T, typename... Rest >
struct Base<DerivedType<T, Rest...>> {
    Base() = default;
    template<typename T2, typename... Rest2>
    Base(const Base<DerivedType<T2, Rest2...>>&)  {}
};

template<typename T>
struct Child : Base<Child<T>> {
    using MyBase = Base<Child<T>>;
    Child() = default;    
    template<typename T2>
    Child(const Child<T2>& other) : MyBase(other) {}
};

int main() {
    Child<int> cti;
    [[maybe_unused]] Child<float> ctf = cti;
}
```
is accepted by GCC, while Clang prints the error:
```
error: too many template arguments for class template 'Child'
    Base(const Base<DerivedType<T2, Rest2...>>&)  {}
```
Demo: https://gcc.godbolt.org/z/K55rWcM8e

Related discussion: https://stackoverflow.com/q/59306119/7325599
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1VE2PmzAQ_TVwsYrAJCEcOGRJt4dqL6tIPVbGDIlbg1PbZJX--o4dyCdpT42MYjwzb968GVOp-lhsdsKQA5OiJlzVEKSrIF4H8SpYxMPyrxbavWQW7aU97qFjLZA1aHGAOkg_n3yM1T235IUZdHsZYB6iH4ECWpJxH0UR4hEumTFjgg3arn3I5i6CvIOxZJpHeQ2Slj7UuZ8SuVxBNnAl-PNBdBnQHPHWpIaG9dKey3EuU1Js6BQleqZ0Bc1VZ56RoyM7eqYX0IUj41lm60FU3DwX-KLSnSDlTsgay1qN2f2BF2VCid6Ibkvejs7XazEddCPNyTYln7P-U8JrtUaok1znpPQkCVF2B_qUZjWQROfL6V_VEp0lLRPdyDR7KCEt0ccPohU3FQbzF1wtO1bwve96g-M_X-M6xzVSsSGy8RpcI1w43d4uvIKMc9hbqEl1JF_K0g3CB0ICKSXDPuw1EjIE6yOgtdLP7uloJFYprLE7nrUmTG_7FhxKo_Rww87GgGaD4tl_mdhblmtolSO5s3ZvXCn0FdeW82ir6kpJGym9xZPf-Hydz_U3_raE6w6-g2Ndk1oY3hsjVPcIZyzjP9UBNLbkI-KqxbNf-MzzNF4kSY7bLKXzeZ6HdZHWeZqz0AoroXh2m0jboxAV-DYYd8rM9CxPfQ0cgGjGjw_BnmOkPYa9lsWdEMLu-mqgLOVh_Pu01-oHcIuvwpgejKsmTZJZuCto3CTLBtK4WmZVmi9pFbN8tkgX1azhM74MJatAmsINMKUdfBAPgXuc3lBgPKVxksQ0iWdxEi2WeZXRtKmajC5o3QSzGPDKyMjxcN0JdeEpVf3WoFEKY83FiLMlth2AT4f4rLc7pYtXqHXo8xae9x_WB-qy">