нет?
Нельзя
Можно, но не в рамках стандарта
Поэтому и говорю - это невозможно
Можно проверять адрес объекта и в какой области он находится. Если на стэке, то собсна он не в куче
Что за фантазии?
Можно запретить создание не в куче, но это неправильный способ решения какой бы то ни было проблемы в вашем случае
Это охеренно неправильный способ.
Какой вы зануда конечно. Можно проверять куда растут адреса например при создании переменной. Но опять же я не предлагаю этим заниматься.
Согласен, не очень хорошо
такая проверка может не сработать на определенной платформе, так что он прав.
Ну да. Я просто говорю, что с определенными условиями это можно сделать.
Главное — как это поможет автору вопроса - неизвестно. Так что это ты зануда, а не я :)
И что же ты имеешь в виду, какие вызовы API?
`struct A { bool is_on_heap() const { int i; if (&i < this)... } };
Это вообще бред какой-то, мало того, что UB, так ещё и просто не будет работать.
Так это UB по факту
Ну да. А что ты мне сделаешь?
Забаню за пропаганду UB
Угнетение по УБному признаку. Это тоже УБ
Хоботов, я оценила..
А можно запретить создание на стеке?
А где указатели хранить?
Такое сравнение указателей не UB, вроде, но толи implementation defined, толи unspecified
УБ. Можно сравнивать только внутри массива
Указатель не является объектом на который он указывает
Так указатель это тоже объект который хранить где-то надо
А ещё компиляторы свиньи не дают это платформозависимо разрулить хотя могут
А я про повальный запрет говорил?
Можно. Делаешь деструктор приватным, и ок
Или все конструкторы...
Обсуждают сегодня