Lorsque vous appelez une fonction de modèle, est-il correct d'omettre le type après le nom de la fonction?Omettre des arguments dans les modèles C++
À titre d'exemple, considérons la fonction
modèle
<typename T
> vide f (T var) {...};
Est-il correct d'appeler simplement comme ceci:
int x = 5;
f (x);
ou dois-je avoir pour inclure le type?
int x = 5;
f<int
> (x);
Ne pourriez-vous juste essayer et voir ce qui se passe? Semble assez facile à tester. –
@ Ed Swangren, La méthode "juste essayer" est très peu informative. Au mieux, il vous indique qu'un compilateur particulier autorise la syntaxe donnée. Il ne vous dit rien sur la sémantique ou l'exactitude de la déclaration en ce qui concerne la norme linguistique. – Trent
Je suppose que j'aurais pu clarifier la question. Comme Trent l'a fait remarquer avec bonté, ce n'était pas tellement de si cela compilerait. Je suis curieux de savoir ce qui se passe dans les coulisses et d'avoir du mal à trouver de bonnes informations là-bas! – Chris