Добавление в класс любого некопируемого члена предотвратило бы автоматическое создание копирующего оператора построения и присваивания. Почему усиление требует наследования для использования noncopyable?
Я думаю, что я не одинок в своем стилистическом предпочтении
class MyUtility : public MyBase
{
noncopyable guard;
...
};
в отличие от
class MyUtility : public MyBase , private noncopyable
{
...
};
Дэйв Абрахамс - умный парень, поэтому он, вероятно, рассмотрел эту возможность. Что мне не хватает? Что дает наследование?