от T
Могут быть
как-то можно выделить сырую память, но выровнять, как T?
оно плохо пахнет, потому что init_with_t это чужая сишечка, в которую можно передать указатель, но поменять его потом уже нельзя. раньше init_with_t было внутри конструктора T и там был this. Сейчас я это из констрктора вынимаю, потому что init_with_t может вернуть ошибку, а проект с -fno-exceptions, значит надо как-то всё создавать и обрабатывать в статической фабрике.
Уж лучше какой нить метод valid сделать...
Конструктор в private, обёртку над init_with_t в private методы, статическую фабрику -- статическим методом класса и продолжать использовать this?
фабрика создать невалидный объект, потом донастроит его после успешного init_with_t? подходит, спасибо
new (std::align_val_t(16)) int[40];
aligned_alloc?
Что понимается под максимальным выравниванием? Выравнивание по странице? Выравнивание по 64 битам?
Если нет стдлибы то posix_memalign например)
Для чара макс выравнивание ето один
Один байт? Не может быть. Компилятор не выравнивает меньше чем по 32 битам (4 байтам) без специальных флагов, насколько я знаю
А почему потом делается % 32?
чтобы показать что там не 0?)
Обсуждают сегодня