Имаме тлъст клас пълен с много vector-и и много скаларни членове, който разчита на дефолтните copy ctor и assignment op.
Искаме да видим колко често се викато въпросните генерирани от компилатора методи, понеже са тежки и отнемат време.
Писането на ръчен operator= е много неудобно и безперспективно решение (нито искаме да пишем десетки присвоявания, нито утре някой да счупи класа като добави нов член и забрави да го копира).
Индустриален профайлер върши работа, само че от една страна не е много удобен и лесен за ползване, а от друга (по-важна) искаме не само да получим и да използваме информацията еднократно, а да я вкараме в автоматичен тест и да се подсигурим че постигнатата оптимизация (като брой извиквания) не се влошава.
Не много приятно решение:
Преименуваме въпросния клас, което не е много трудно (малко ръчен find-replace в хедъра, find-replace-all в .cpp-то на MyClass:: с MyClassRaw::). За по-сигурно правим конструкторите protected. После добавяме наследен клас с оригиналното име и operator= който вика operator= на базовия клас, и го инструментираме (демек добавяме статичен брояч на извикванията).
Не е много приятно заради развалянето на четливостта, оригиналният клас (който е имал най-подходящото възможно име) вече има неестествено име. Но поне клиентите ползват класа с оригиналното име.
Въпрос:
Дали пък няма по-добро решение? Не ми се вярва, но да питам все пак. Ако можеше някак хем да се подмени, хем да се използва компилаторно-генерираният метод...
И дали не е нахално да предложи човек нещо такова на хората дето развиват езика?

Мета-въпрос:
Има ли по-добро място където да се зададе такъв въпрос (бих казал, от сравнително високо ниво)? Stackoverflow май само ми звучи приемливо, но досега не съм питал там. За тук се надявам че pdimov още влиза от време на време
