Зачем генерировать только первую функцию в экземпляре? - PullRequest
0 голосов
/ 05 ноября 2019

https://i.imgur.com/fnHUtNG.png

в классе:

    template<typename T , typename Y  >
    void test33213(T a , Y b) {
        printf("%d" , a.a + b.a);
    }
    template<typename T , typename Y , typename P >
    void tetes1(T a , Y b , P c) {
        printf("%d" , a);
        test33213<Y , P>(b , c);
    }

int main:

    my.tetes1<int , MyStruct , MyStruct1>(1 , a , b);
    my.tetes1<int , MyStruct3 , MyStruct4>(2 , c , d)

в функциях tetes1, думаю, мы выведем две функции:

test33213<MyStruct , MyStruct1>(b , c);
test33213<MyStruct3 , MyStruct4>(b , c);

Но вступает в силу только первый:

test33213<MyStruct , MyStruct1>(b , c);

полный код: https://gist.github.com/xoraxrax/8149c31c6b26d10f48deb2d1ec5a298a

Кто-нибудь знает причину?

...