existe-t-il un moyen de remplacer un élément de tuple à Temps de compilation fort>? Par exemple, P> using a_t = std::tuple<std::string,unsigned>; // start with some n-tuple
using b_t = element_replace<a_t,1,double>; // std::tuple<std::string,double>
using c_t = element_replace<b_t,0,char>; // std::tuple<char,double>
3 Réponses :
regarder boost mpl transformer code> ou
remplacer code> algos http://www.boost.org/doc/libs/1_40_0/libs/mpl/doc/refmanual/transformation-algorithms.html < / p>
Pendant un bon conseil ... Cela manque également sérieusement de viande. Les réponses uniquement des liaisons sont fronça les fronzées, veuillez vous abstenir de poster de tels.
Vous pouvez accéder aux types d'éléments d'un type de tuple à l'aide de std :: tuple_element . Cela ne vous permet pas de remplacer les types d'éléments de tuple, mais il vous permet de définir des types de tuples en termes de types utilisés comme types d'éléments dans d'autres types de tuple. P>
Vous pouvez utiliser ceci: puis l'utiliser comme ceci: p>
+1 - juste une correction mineure: je pense que vous avez besoin tuple code> dans
std :: tuple_size
@ kfmfe04: D'oh! Bien sûr, l'avait eu dans mon code de test et j'ai oublié de modifier. Fixe maintenant!