Size: a a a

2021 July 08

VS

Vlad Serebrennikov in supapro.cxx
а когда еще?
источник

ip

illya palkin in supapro.cxx
Ну это единственный мне известный случай, какие еще есть ?
источник

SS

Sergey Skvortsov in supapro.cxx
Сразу после другой объект создать, уже через placement new
источник

CA

Cedo Alteram in supapro.cxx
проблема в том что не работает. Сейчас не скажу что именно, не на работе
источник

/

/bin/cat in supapro.cxx
new использовать нельзя
источник

/

/bin/cat in supapro.cxx
у меня нет рантайма и кучи
источник

ip

illya palkin in supapro.cxx
Ну вы можете написать свой сторедж, написать свою malloc/free и выделять/освобождать в нём память когда захотите. Это будет работать в Си. А что делать с вызовом конструкторов в С++ - не знаю, поищите в стандарте
источник

В

Владимир in supapro.cxx
Чтобы не возиться с placement_new вроде как можно пихнуть std:: allocator.
источник

В

Владимир in supapro.cxx
И так безопасней.
источник

А

Ананданатх in supapro.cxx
В с++ можно переопределить глобально new/delete
источник

N2

N 2 in supapro.cxx
можно ли как-то получить статический тип внутри виртуальной функции?
кароче такая фигня,
* у каждого нужного мне класса есть своя статическая переменная tag, причем классы находятся в одной иерархии наследования пример:
class A { static int tag; }; class B : A { static int tag; } 
* мне нужно написать функцию которая будет получать этот тэг виртуально
* можно создавать для каждого класса виртуальную функцию get_tag() но так лень писать для каждого класса
* как можно пофиксить эту проблему?

*также можно сделать глобальный map по typeid и так получать, но это по производительности не оч хорошо
источник

В

Владимир in supapro.cxx
Это да, ну типа, если пишешь свой контейнер, то рекомендуют аллокатор
источник

В

Владимир in supapro.cxx
Он внутри себя вызывает плейсмент нью
источник

Q

Qwant in supapro.cxx
Почему при записи данного значения, записывается 4 байта, а не 2?
uint16_t file_type{0x4D42};
источник

͏С

͏ СаС in supapro.cxx
есть вопрос на счет высвобождения памяти, занимаемой членами класса после вызова деструктора
есть конструкция
struct A {
 int x;
 A(int a) : x(a) {};
};
struct B : A {
 int n;
 B(int b) : A(b), n(b) {};
};

после чего в мейне
B *b = new B(10);
A *a = b;
delete a;

так вот, чего я не понимаю - так это почему в таком случае нет утечки (конкретно у меня), как если бы было в случае с дополнительными членами в наследуемом обьекте или же если бы там был не инт, а скажем стринг
оба обьекта находятся под одним адресом, но их члены - под разными же, в следствии чего удалится только x, но не n
это оптимизация компилятора (если да, то как ее отключить, чтоб проверить) или что-то еще?
источник

ip

illya palkin in supapro.cxx
Но в таком случае вы будете отдавать память назад в свой сторедж, а не ОС. Поэтому смысла в этом немного. Это вроде как не решает вашу проблему.
источник

Q

Qwant in supapro.cxx
unsigned short ведь 2 байта, а не 4
источник

В

Владимир in supapro.cxx
Деструктор виртуальный?
источник

͏С

͏ СаС in supapro.cxx
нет, в том и дело, деструктор вызывается только базового класса
источник

DP

Denis Paukaev in supapro.cxx
тогда твой вопрос не понятен, чем тебе отсутствие вызова деструктора наследника не утечка
источник