KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I cant see why the statement in main is ambiguous. template<class T, class U, int I> struct X { void f() { cout << "Primary template" << endl; } }; template<class T, int I> struct X<T, T*, I> {void f() { cout << "Partial specialization 1" << endl;}}; template<class T, class U, int I> struct X<T*, U, I> {void f() { cout << "Partial specialization 2" << endl;}}; template<class T> struct X<int, T*, 10> {void f() { cout << "Partial specialization 3" << endl;}}; template<class T, class U, int I> struct X<T, U*, I> {void f() { cout << "Partial specialization 4" << endl;}}; int main() { X<int, int*, 10> f; } Isn't X<int, T*, 10> the most specialized template? This is an example from http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Fpartial_specialization.htm
Tags (comma-separated)
Save Edits
Cancel