Re[3]: ::operator new() в самописном стэке
От: reversecode google
Дата: 12.06.23 08:23
Оценка:
S>Разве я не прав?
S>Мне достаточно просто делать memmove() или memcpy() для элементов, которые я собираюсь в нём хранить.

для скажем "POD" вызывается memmove/memcpy

https://habr.com/ru/companies/otus/articles/704492/
а если вы нарушаете правило трех пяти нуля, пихая копи мув итд конструкторы и ассайменты
и при этом хотите структуру данных просто двигать
то вы что то делаете не так
Re[3]: ::operator new() в самописном стэке
От: rg45 СССР  
Дата: 12.06.23 09:03
Оценка: +1
Здравствуйте, Sm0ke, Вы писали:

S>Мне достаточно просто делать memmove() или memcpy() для элементов, которые я собираюсь в нём хранить.


Это неплохо было бы отразить в виде соответствующего констрейнта. Если концепты недоступны, то прибегнуть к помощи SFINAE:

template <typename, typename = void> class vector;

template <typename T>
class vector<T,std::enable_if_t<std::is_trivial_v<T> && std::is_standard_layout_v<T>>> {
    /*...*/ 
};
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 12.06.2023 9:10 rg45 . Предыдущая версия .
Re[4]: ::operator new() в самописном стэке
От: σ  
Дата: 12.06.23 11:08
Оценка:
R>а минусик от вас где ?

Так разобиделся, что аж выкать начал?

R>очевидно что подразумевалась вся конструкция целиком


Ничё не понял. Какая «конструкция целиком» обеспечивает кастомизацию политики резервирования кастомным аллокатором?
Re[3]: union требует конструктор, зачем так сделано?
От: wander  
Дата: 06.07.23 15:52
Оценка:
Здравствуйте, so5team, Вы писали:

S>Просто на всякий случай: std::aligned_storage задеприкейтили в C++23.


А какая предлагается альтернатива?
Re[4]: union требует конструктор, зачем так сделано?
От: so5team https://stiffstream.com
Дата: 06.07.23 16:00
Оценка: +1
Здравствуйте, wander, Вы писали:

S>>Просто на всякий случай: std::aligned_storage задеприкейтили в C++23.


W>А какая предлагается альтернатива?


Там же в PDF-е и предложенная альтернатива:
alignas(T) std::byte t_buff[sizeof(T)];
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.