Modèles nesteds vs opérateur de décalage

J’ai lu tout autour de savoir >> tant que fin du modèle nested et >> tant qu’opérateur de changement …

Maintenant, je l’ai essayé dans mon MSVS2010 et aucun problème ne s’est produit.

std::map<int, std::pair> m;

Ce code fonctionne exactement ce que je veux (carte de paires) mais je devais avoir une erreur à propos de >>

Le compilateur est plus intelligent ces jours-ci?

    MSVC ++ 2010 prend en charge les supports à angle droit de la fonctionnalité C ++ 0x

    Soyez prudent, car un code C ++ 03 de bonne qualité risque de ne plus fonctionner avec les compilateurs prenant en charge cette fonctionnalité.

     MyArray< MyArray> 2>, 5 > arrayInst; 

    Ce serait la solution:

     MyArray< MyArray> 2)>, 5 > arrayInst; 

    Ce code fonctionne exactement ce que je veux (carte de paires) mais je devais avoir une erreur à propos de >>

    C ++ 0x a corrigé cela. Donc, si vous ne recevez aucune erreur avec MSVS2010, alors ce n’est pas étonnant, car MSVS2010 a implémenté certaines fonctionnalités de C ++ 0x.

    De plus, même avec C ++ 03, de nombreux compilateurs traitent de tels cas, bien que cela ne soit pas requirejs par la norme (2003).

    C ++ 0x supporte maintenant cette syntaxe sans erreur. Les compilateurs ont déjà commencé à implémenter la plupart de ces fonctionnalités, il n’est donc pas surprenant que le dernier compilateur Microsoft C ++ les prenne en charge.