Comment peut-on réaliser le auto fonctionnalité de mot-clé sans utiliser C++ 0x standard?Modèle auto fait main (sans utiliser C++ 0x)
for(std::deque<std::pair<int, int> >::iterator it = points.begin();
it != points.end(); ++it)
{
...
}
Peut-être que cette classe:
class AUTO
{
public:
template <typename T1>
AUTO(T1);
template <typename T2>
operator T2();
};
Avec une telle utilisation:
for(AUTO it = points.begin(); it != points.end(); ++it)
{
...
}
Mais, T1 et T2 sont différents. Comment déplacer des informations sur T1 à opérateur T2()? Est-ce vraiment possible?
Je ne pense à la mise en œuvre que pour l'utilisation de for for like like. Le mot-clé auto C++ 0x a beaucoup d'usages ... Merci pour le lien, je vais lire. – k06a
@ k06a: Il existe une forte opposition en C++ pour implémenter quelque chose comme une nouvelle fonctionnalité de langage quand il peut être implémenté dans une bibliothèque. Donc, si quelque chose finit dans la langue, vous pouvez être sûr que personne n'a trouvé le moyen de le faire correctement dans une bibliothèque. (Par exemple, ce que 'std :: function' et' std :: bind' font est construit dans le langage dans beaucoup d'autres langages, mais c'est une fonction de bibliothèque en C++.) – sbi
Je me suis toujours demandé pourquoi BOOST_FOREACH est un petit pourcentage loin d'une boucle "codée à la main". –