Bug One Answer

The killer here is the double >'s in the declaration of v. The C++ parser has to interpret this as the operator >> which is an atomic token, on par with the template parameter delimiters < and >. Thus the declaration line is seen as:

vector (less-than-token) vector (less-than-token) int (right-shift-operator) v;

Where "right-shift-operator" is the >>. The solution to this problem is to simply put a space between the two >'s.