können Sie bar ändern() eine globale Bool auf true Eintrag zu setzen und falsch am Ausgang. Testen der Bool in foo() wird Ihnen sagen, wenn Sie in der bar() Aufrufstack.
namespace {
bool test_bar = false;
}
void bar() {
test_bar = true;
// do stuff
test_bar = false;
}
Wenn Sie die oben müssen in einer multi_threaded Umgebung zu arbeiten, dann ist die globale Bool wird müssen lokale Thread (mit so etwas wie boost :: thread_specific_ptr) Diese Art von Konstrukt sollte nur für die Verfolgung Rennen verwendet werden Bedingungen, die in einem Debugger schwer zu finden sind, ist ein schnelles und schmutziges Werkzeug, andere Verwendungen weisen auf ein schlechtes Design hin.
Nein, es gibt keine Möglichkeit, dass in Standard C++ zu tun ist. –
Nein, nicht portabel. – ildjarn
Klassisches [XY-Problem] (http://meta.stackexchange.com/a/66378/147331)! Was versuchst du eigentlich? – Johnsyweb