returnC1<int>::s_var_1;// expected-warning{{instantiation of variable 'C1<int>::s_var_1' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::s_var_1' is explicitly instantiated in another translation unit}}
}
charfunc_03(){
returnC1<char>::s_var_2;// expected-warning{{instantiation of variable 'C1<char>::s_var_2' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<char>::s_var_2' is explicitly instantiated in another translation unit}}
}
voidfunc_04(){
C1<int>::s_func_1();// expected-warning{{instantiation of function 'C1<int>::s_func_1' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::s_func_1' is explicitly instantiated in another translation unit}}
}
voidfunc_05(){
C1<int>::s_func_2();
}
voidfunc_06(){
C1<char>::s_func_2();// expected-warning{{instantiation of function 'C1<char>::s_func_2' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<char>::s_func_2' is explicitly instantiated in another translation unit}}
}
voidfunc_07(C1<int>*x){
x->meth_1();// expected-warning{{instantiation of function 'C1<int>::meth_1' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::meth_1' is explicitly instantiated in another translation unit}}
}
voidfunc_08(C1<int>*x){
x->meth_2();
}
voidfunc_09(C1<char>*x){
x->meth_1();// expected-warning{{instantiation of function 'C1<char>::meth_1' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<char>::meth_1' is explicitly instantiated in another translation unit}}
}
charfunc_10(){
returnC1<int>::s_tvar_2<char>;
}
charfunc_11(){
returnC1<int>::s_tvar_2<long>;// expected-warning{{instantiation of variable 'C1<int>::s_tvar_2<long>' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::s_tvar_2<long>' is explicitly instantiated in another translation unit}}
}
voidfunc_12(){
C1<int>::s_tfunc_2<char>();
}
voidfunc_13(){
C1<int>::s_tfunc_2<long>();// expected-warning{{instantiation of function 'C1<int>::s_tfunc_2<long>' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::s_tfunc_2<long>' is explicitly instantiated in another translation unit}}
}
charfunc_14(){
returnC1<int>::C2<long>::s_var_2;
}
charfunc_15(){
returnC1<int>::C2<char>::s_var_2;//expected-warning {{instantiation of variable 'C1<int>::C2<char>::s_var_2' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::C2<char>::s_var_2' is explicitly instantiated in another translation unit}}
}
voidfunc_16(){
C1<int>::C2<long>::s_func_2();
}
voidfunc_17(){
C1<int>::C2<char>::s_func_2();// expected-warning{{instantiation of function 'C1<int>::C2<char>::s_func_2' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::C2<char>::s_func_2' is explicitly instantiated in another translation unit}}
}
voidfunc_18(C1<int>::C2<long>*x){
x->meth_2();
}
voidfunc_19(C1<int>::C2<char>*x){
x->meth_2();// expected-warning{{instantiation of function 'C1<int>::C2<char>::meth_2' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::C2<char>::meth_2' is explicitly instantiated in another translation unit}}
}
charfunc_20(){
returnC1<int>::C2<long>::s_tvar_2<char>;
}
charfunc_21(){
returnC1<int>::C2<long>::s_tvar_2<long>;// expected-warning{{instantiation of variable 'C1<int>::C2<long>::s_tvar_2<long>' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::C2<long>::s_tvar_2<long>' is explicitly instantiated in another translation unit}}
}
voidfunc_22(C1<int>::C2<long>*x){
x->tmeth_2<char>();
}
voidfunc_23(C1<int>::C2<long>*x){
x->tmeth_2<int>();// expected-warning{{instantiation of function 'C1<int>::C2<long>::tmeth_2<int>' required here, but no definition is available}}
// expected-note@-1{{add an explicit instantiation declaration to suppress this warning if 'C1<int>::C2<long>::tmeth_2<int>' is explicitly instantiated in another translation unit}}