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
Кто-нибудь знает причину?