Je trouve que faire une classe non-copiable m'aide beaucoup avec la qualité de mon code. Initialement, je l'ai fait avec boost :: nononcopyable, mais j'ai trouvé que les erreurs du compilateur VC++ ne sont pas aussi utiles qu'avec les membres privés (un double clic mène au mauvais endroit dans le code). En effet, il m'a alerté dans un certain nombre de cas où les classes n'ont pas été transmises comme référence où elles devraient l'être. Tant et si bien, que j'aimerais beaucoup recevoir un avertissement même sur les classes que j'ai juste besoin de copier construire une fois.C++ Non copiable sauf parfois
Existe-t-il un bon moyen de le faire? Je pensais par exemple à laisser au-dessus de deux méthodes privées et à ajouter un constructeur public T (T const &, bool dummy) pour appeler quand je veux vraiment copier construct. Ou peut-être faire alternativement au-dessus de deux méthodes publiques et en quelque sorte activer un avertissement du compilateur lors de la construction de la copie, en supprimant l'avertissement où je veux.
Ou peut-être y a-t-il un meilleur ensemble?
J'aime cette réponse mieux. Le problème avec les constructeurs de copie, d'après mon expérience, est quand ils sont invoqués "par accident" sur un objet énorme. 'explicit 'vous force à y penser quand vous les invoquez, ce qui devrait être suffisant. – Nemo
Salut, cela convient parfaitement à mes besoins. Merci. – Cookie