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 :
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 j'aimerais écrire ceci :
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
Et donc, comme indiqué ci-dessus, cela ne compile pas.

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 :
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"},
	...
};
Merci à ceux qui pourront m'aider

[EDIT]
il se trouve que :
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);
}
[/EDIT]