Initialisation d'un tableau avec constructeurs
Bonjour,
Je cherche a initialiser un simple tableau de données non copiables et sans constructeur par défaut. Exemple :
Code:
1 2 3 4 5 6 7 8 9
| struct test {
test(int i) {}
test(const test&) = delete;
};
int main() {
test tbl[4] {1, 2, 3, 4};
return 0;
} |
Le compilateur (g++) me dit :
Citation:
Envoyé par g++
error: use of deleted function test::test(const test&)
Il semble donc créer une instance de test pour chaque élément de la liste d'initialisation, puis tente de les copier dans le tableau.
Connaissez-vous un moyen d'éviter cette copie inutile ? Mes recherches sur la toile ont été infructueuses...
NB :
- Je peux utiliser le C++11.
- Je pourrais bien sûr passer par un tableau de pointeurs (nus ou intelligents), mais je trouve ça dommage pour une raison aussi bête...