Я реализую механизм трассировки, который выводит строку журнала при входе в функцию и при выходе (когда объект трассировки уничтожен). Мне было бы интересно также вывести номер строки, из которой выходит область действия, но не уверен, как это сделать, поскольку объект уничтожается при выходе. очевидно __LINE__
в деструкторе не будет работать, так как он просто выведет номер строки деструктора.
Решением было бы сбросить трассировку стека, как это делается зависит от платформы / компилятора. Для Visual Studio вы можете использовать DbgHelp библиотека, хотя полный код для печати трассировки стека довольно длинный.
Других решений пока нет …