При использовании QSharedData / Pointer вам обычно не нужно реализовывать copy ctor или operator =.По умолчанию подразумевается копирование / назначение производного от QSharedData члена, который обычно выполняет правильную задачу (TM).Для открытого класса вам нужно реализовать ctor, создающий закрытый объект, и если закрытый класс не объявлен в заголовке, а в реализации (что лучше), dtor (ничего не делая, единственное, что невстроенный и определенный в .cpp, после частного объявления).Для закрытого класса реализации метода / ctor / dtor не требуется.Для простых классов, основанных на значениях, написание сеттеров, конечно, утомительно, но то же самое верно, если вы используете простые закрытые переменные-члены.Издержки в LOC не растут с увеличением числа членов.
И нет, для меня не существует стандартного решения для генератора, хотя написание скрипта или макроса emacs и т. Д., Выполняющих это, не так сложно,Вероятно, имеет смысл добавить такие вещи в общедоступный набор инструментов или QtCreator ...