Я хотел бы создать шаблон, который берет существующий класс и делает его некопируемым и неназначаемым, но без использования наследования. Например, рассмотрим std::vector. Я хотел бы применить шаблон NonCopyable таким образом, чтобы std::vector стал некопируемым.
Вот упрощенная версия того, к чему я стремлюсь:
Код: Выделить всё
NonCopyable vec1{1, 2, 3};
NonCopyable vec2(vec1); // should not compile
vec2 = vec1; // should not compile
Какой шаблонный подход будет подходящим для достижения такого поведения, если предположить, что я не могу изменить исходный класс и не хочу использовать наследование?
Изменить
Возможно, я не понял: шаблон может использовать внутреннее наследование.
Подробнее здесь:
https://stackoverflow.com/questions/790 ... template-w