Сообщение Re: Как из тела функции понять кто ее вызвал? (придумать С++ от 28.04.2021 22:03
Изменено 28.04.2021 22:05 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 в стандартную библиотеку (другой вопрос, когда появится реализация).
Существуют 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: Как из тела функции понять кто ее вызвал? (придумать С++
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 в стандартную библиотеку (другой вопрос, когда появится реализация).
Существуют 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 в стандартную библиотеку (другой вопрос, когда появится реализация).