Bonjour,
J’ai une classe (non copiable). Dedans cette classe, il y a un gros tableau, qui est un std::vector. Je voudrais m’assurer que ce vecteur n’est pas copié implicitement (par erreur, soit parce qu’on le passe en paramètre de fonction par copie et pas par ref).
J’aimerai donc faire un truc du genre :
Y a-t-il une solution standard à ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class A { private: noncopyable std::vector<Data> m_data; public: noncopyable std::vector<Data>& data() { return m_data; } }
Je suis parfaitement conscient que si on veut copier le vecteur, on le copiera. L’idée est plutôt ici de détecter à la compilation une copie accidentelle (operator=, passage de paramètre…), qui me plomberait mes perfs. La copie explicite étant toujours possible via itération sur le vecteur.
Partager