Bonjour à tous.
Ma question porte sur l'utilisation de Assign dans le cadre de l'initialisation d'un vector de structures.
Voici ce que je veux remplir :
et j'aimerais écrire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 struct S { int a; std::string b; }; typedef std::vector<S> Liste; Liste aremplir;
Et donc, comme indiqué ci-dessus, cela ne compile pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 using namespace boost::assign; aremplir += {1,"toto"},{2,"titi"} ...; // expected primary-expression before '{' token
L'idée c'est en fait de mettre de grosses quantités de constantes de façon lisible et facilement modifiables.
Si je voulais faire pareil avec un tableau (plutot qu'un vector), j'écrirais :
Merci à ceux qui pourront m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 S aremplirmaismoinsbien[] = { {1,"toto"}, {2,"titi"}, {3,"tata"}, ... };
[EDIT]
il se trouve que :
[/EDIT]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 template <class V, class A, class V2) ... boost::assign::operator+= (std::vector<V,A>&c, V2 v) { return push_back(c)(v); }
Partager