Assign sur un vector<Struct>
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:
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:
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:
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:
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]