Bonjour à tous,
Si vous avez un peu suivi l'actualité C++0x, vous avez surement vu qu'il y aura une nouvelle possibilité avec les templates... Le fait de faire comme pour printf, passer un nombre arbitraire d'arguments... Mais dans le cas des templates il s'agit de types !
Pour avoir une meilleure idée de ce que c'est, peut-être voudrez-vous lire mon billet sur les variadic templates dans lequel je donne surtout des liens essentiels pour en savoir plus.
Qu'en pensez-vous ?
Par exemple, Faisal Vali émet une suggestion d'ajout (toutefois je pense que c'est trop tard... Peut-être pour la première révision de C++0x ?) relative aux variadic templates, je cite :
Pensez-vous que ç'a trop été fait à la "va-vite" ? Que ces suggestions sont justifiées ?1) Member Declaration Packs:
template<class ... V> struct store { V...members; };
Standardese: http://c-plus-plus-0x.wikidot.com/c-...es:member-decl...
2) Pack expansions of arbitrary expressions:
template<class ... V> bool v_and(V...v) { return true && v ...; }
Standardese: http://c-plus-plus-0x.wikidot.com/va...ck-expansion-o...
3) A guaranteed non-recursive way to access elements of parameter
packs
template<int N, class ... V> struct get_type
{
typedef V@N type; // or implementation_defined<N,V...>::type -
guaranteed linear
};
template<int N, class ... V> get_type<N,V...>::type get(V...v) {
return ::implementation_defined<N>(v...);
}
Vous en servirez-vous (pour de la programmation système j'en doute, mais s'il y a parmi vous des concepteurs de modules/bibliothèques se devant d'être génériques, je pense que vous devriez vous intéresser aux VT si ce n'est pas déjà fait) ?
Partager