Централизованный способ отключить конструкцию по умолчанию - сделать конструктор по умолчанию недоступным.
Вы пишете: «Я хотел бы знать, есть ли решение для предотвращения программирования программистом, который (косвенно или нет) использует конструктор копирования по умолчанию, если объект не является POD.» *
Предположительно, вы имеете в виду, что вы хотите, чтобы компилятор реагировал на любую конструкцию по умолчанию любого не-POD-объекта.
Извините, не зависит от компилятора.
Причина: очень многие классы, не относящиеся к POD, такие как интеллектуальные указатели и контейнеры, такие как std::vector
, полагаются на конструкцию по умолчанию, чтобы быть полезной.
Компилятор g ++ имеет опцию -Weffc++
для предупреждения о нарушениях руководящих принципов в Scott Meyers & rsquo; Эффективный C ++ , но насколько я знаю & ndash; Я могу ошибаться & ndash; это не относится к вашему делу. Однако, как сообщается, может быть полезным.
Приветствия & hth.,