Bonjour !
Fiou, quel intitulé
Alors, prenez un tuple simple:
std::tuple<A,B,C,E,D,...> mon_tuple;
Maintenant, prenez une classe et son constructeur:
class X { X(A,B,C,E,D,...); };
Puis un vecteur de cette classe:
J'aimerais pouvoir faire un emplace_back sur le vecteur, en utilisant mes tuples.
Evidemment, la question du std::tie ne se pose meme pas, trop lourd à la lecture et aussi si je dois changer des choses dans la classe.
Avec une simple rechercher, je tombe sur...
http://stackoverflow.com/questions/6...ions-arguments
Le truc, c'est comment attraper la signature de emplace back d'un vecteur v ?
1 2 3 4 5 6
| collection_t r; // mon vecteur de pointeur
for(...)
{
auto un_tuple = ...
auto fn = std::mem_fn(&collection_t::emplace_back);
apply(fn(r), un_tuple); |
J'obtiens des erreurs du type:
error: no matching function for call to ‘mem_fn(<unresolved overloaded function type>)’|
Au final, ce que je fais c'est au lieu de faire
tuple -> variables -> emplace_back
j'aimerais sauter l'etapes des variables, et qu'un template depaquetes mon tuple sur une fonction variadic, ici, emplace_back!
Merci, nico
Partager