Czy klasa C ++ może określić, czy jest na stosie, czy na stercie?

mam

class Foo {
....
}

Czy istnieje sposób, aby Foo mógł się rozdzielić:

function blah() {
  Foo foo; // on the stack
}

i

function blah() {
  Foo foo* = new Foo(); // on the heap
}

Chcę, aby Foo mógł robić różne rzeczy w zależności od tego, czy jest przydzielony na stosie, czy na stosie.

Edytować:

Alof ludzi zapytał mnie „dlaczego to robisz?”

Odpowiedź:

W tej chwili używam GC ref-counted. Chcę jednak mieć także możliwość uruchamiania znakowania i zamiatania. W tym celu muszę oznaczyć zestaw wskaźników „root” - są to wskaźniki na stosie. Dlatego dla każdej klasy chciałbym wiedzieć, czy znajdują się na stosie, czy na stercie.

questionAnswers(15)

yourAnswerToTheQuestion