• [^] # Re: Donc pour résumer...

    Posté par (site web personnel) . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2.

    "copie tous les membres sauf un"

    Il pourrait y avoir une class dans une bibliothèque. Un truc du genre: (non testé)

    template<typename T> class no_copy {
     T value;
    public:
     no_copy(const T&v) : value(v) {}
     no_copy(const no_copy&) : value() {} // zero-initialize
     operator T&() { return value; }
    };
    // Move sementic, const correctness and operator =, *, ->, ->*, are left as an exercise to the reader.

    Et ensuite dans ta classe:

    struct FooBar {
     int normalMember1;
     std::string normalMember2;
     no_copy<int> memberThatShouldNotBeCopied;
    };

    (getters/setters pour remplacer un mécanisme de permissions en lecture/écriture, par exemple).

    On pourrait imaginer un read_only<T, U> dont les opérations non constantes seraient privée et qui aurait un friend U.