// Ambiguities resolved. #include int x = 5; templatedouble f(){ typename T::iterator *x; // Notice use of typename: // Means that the dependent name is a typename. // ... } int main(){ f >(); // >> is written > > // Not necessary in C++11. }