Информация об изменениях

Сообщение Re: Как из тела функции понять кто ее вызвал? (придумать С++ от 28.04.2021 22:03

Изменено 29.04.2021 12:51 Reset

Re: Как из тела функции понять кто ее вызвал? (придумать С++
A>Задача: при вызове pfnCallback, в ее теле, нам надо узнать какой из объектов XY ее сейчас вызвал.

Существуют 2 ОС (Linux и Windows, ну, можно еще вспомнить MacOs) и 2,5 компилятора (GCC, LLVM/Clang, VC++). Для всех 3 комбинаций есть backtrace/stacktrace (если задача решается перебором 3 вариантов — то другое решение не ищут).

https://stackoverflow.com/questions/3899870/print-call-stack-in-c-or-c

https://www.boost.org/doc/libs/1_66_0/doc/html/stacktrace/getting_started.html#stacktrace.getting_started.how_to_print_current_call_stack

P.S. Судя по тому, что главный навык любого разработчика — умение гуглить, этот тред — просто "повод поболтать". Вряд ли ТС не нашел решение сам.

P.P.S. Кажется, в последнем стандарте приняли stacktrace в стандартную библиотеку (другой вопрос, когда появится реализация).
Re: Как из тела функции понять кто ее вызвал? (придумать С++
Тут была всякая фигня, не относящаяся к вопросу ТС.