Может ли класс C ++ определить, находится ли он в стеке или в куче?
у меня есть
class Foo {
....
}
Есть ли способ у Foo выделить:
function blah() {
Foo foo; // on the stack
}
а также
function blah() {
Foo foo* = new Foo(); // on the heap
}
Я хочу, чтобы Foo мог делать разные вещи в зависимости от того, находится ли он в стеке или куче.
Редактировать:
Все люди спрашивали меня "зачем это делать?"
Ответ:
Я использую рефконт GC прямо сейчас. Тем не менее, я хочу иметь возможность бегать и метать тоже. Для этого мне нужно пометить набор «корневых» указателей - это указатели в стеке. Таким образом, для каждого класса я хотел бы знать, находятся ли они в стеке или в куче.