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.