Etant donné que Someclass code> est une classe de modèle qui dépend d'un paramètre, des procédés et des attributs dépendent également de ce paramètre de modèle: xxx pré> pour chaque Item code> Il existe un corps de code différent pour incrément () code>. Éventuellement, la mise en page de soméclass code> dépend de élément code>, rendant x ++ code> Reportez-vous à un autre emplacement à l'intérieur Ceci code>. p> Dans cet exemple particulier, élément code> n'est jamais utilisé directement pour que la langue puisse le faire implicitement. On pourrait soutenir que le code pouvait être fabriqué légèrement plus court. Il est fait avec CTAD , qui est beaucoup plus difficile. C'est une question d'opinion dans les rares cas où plusieurs lignes pouvaient être sauvées, que cela vaut la peine de compliquer la langue et d'ajouter un facteur surprise. Au moins avec CTAD, il y a des avantages. De nombreux programmeurs seront surpris de savoir que quelque chose qui ressemble à une classe normale est en fait une classe de modèle. P> Le C ++ a déjà de nombreuses surprises de nombreuses surprises. On peut donc soutenir qu'une plus grande surprise n'est pas une grosse affaire. Tout se résume à une question d'opinion, pas de raison technique profonde pour nécessiter le paramètre de modèle explicite (et redondant) dans cet exemple. La politique est donc contre les opinions et favorise des faits, alors n'allez pas aller plus profond que cela. P> P>
Void Someclass :: Incrément () Code> pourrait être une fonction de
Someclass code> Espace de noms
Vous pouvez légitimement créer une version spécialisée:
Modèle Void Someclass > :: incrément () ... code>. Ce n'est pas