Uma classe C ++ pode determinar se está na pilha ou no heap?
eu tenho
class Foo {
....
}
Existe uma maneira de Foo ser capaz de separar:
function blah() {
Foo foo; // on the stack
}
e
function blah() {
Foo foo* = new Foo(); // on the heap
}
Eu quero que Foo seja capaz de fazer coisas diferentes dependendo se está alocado na pilha ou na pilha.
Editar:
Muitas pessoas me perguntaram "por que isso?"
A resposta:
Estou usando um GC ref contado agora. No entanto, quero ter a capacidade de executar a marcação e varredura também. Para isso, preciso marcar um conjunto de ponteiros "raiz" - esses são os ponteiros na pilha. Assim, para cada classe, gostaria de saber se estão na pilha ou no heap.