"Идиомы и стили С++" - читать интересную книгу автора (Makhmutov Albert)

2. Отладка и трассировка.

Ну это совсем банально. Выносим определение операторов за определение класса и ставим там точку останова. Чтобы не тормозило в релиз версии, окружаем слово inline ифдефами.

template ‹class T›

#ifndef DEBUG

inline

#endif

SmartPointer‹T›::operator T*() {

 return tObj;

}


template ‹class T›

#ifndef DEBUG

inline

#endif

T* SmartPointer‹T›::operator T-›() {

 return tObj;

}