Points de variation et ADL

Eric Niebler a écrit un nouvel article à propos des fonctions introduisant des points de variation dans le code générique et de leur utilisation en deux étapes à cause de l’ADL. L’exemple qu’il donne est celui de la fonction swap, puis dans la suite de begin/end. A l’heure actuelle l’utilisation de telles fonctions se fait en deux étapes :

using std::swap;
swap(/*stuff*/);

Pour permettre à l’ADL de sélectionner la bonne version de swap, c’est à dire celle qui est dans le même namespace que le type de vos paramètres si elle existe, ou la version générique dans le namespace std si il n’y a pas de version particulière.

La proposition de Eric Niebler consiste à introduire std::begin comme foncteur (dans le sens un objet se comportant comme une fonction), et à lui laisser le soin de faire l’appel depuis un point où toutes les versions seront prises en compte.

L’article à cette adresse.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s