Plantillas de C ++ Soportes de angularjs Pitfall: ¿Cuál es la corrección de C ++ 11?

En C ++ 11, ahora es la syntax válida:

vector<vector> MyMatrix; 

mientras que anteriormente, tenía que escribirse así (observe el espacio):

 vector<vector > MyMatrix; 

Mi pregunta es: ¿cuál es la solución que usa el estándar para permitir la primera versión?

¿Podría ser tan simple como hacer > un token en lugar de >> ? Si eso no es, ¿qué no funciona con este enfoque?

Considero que formularios como myTemplate>3 > son un problema, ya que puedes myTemplate>3)> haciendo myTemplate>3)> .

Se soluciona agregando un caso especial a las reglas de análisis al analizar los argumentos de la plantilla.

C ++ 11 14.2 / 3: al analizar una plantilla-argumento-lista , la primera> no anidada se toma como el delimitador final en lugar de un operador mayor que. De manera similar, el primer >> no nested se trata como dos tokens consecutivos pero distintos > , el primero de los cuales se toma como el final de la lista-argumento- plantilla y completa el ID-plantilla .