// Example of an ambiguity: #include int x = 5; templatedouble f(){ // The name iterator depends on T (it is a dependent name, page 746 (4ed)). T::iterator *x; // Ambiguity 1: // T::iterator multiplied by x OR // x declared as a pointer to the type named T::iterator // ... } int main(){ f>(); // Ambiguity 2: // >> shift right OR // end of nested template argument list }