Bonjour,

Je cherche a initialiser un simple tableau de données non copiables et sans constructeur par défaut. Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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...