S>Разве я не прав?
S>Мне достаточно просто делать memmove() или memcpy() для элементов, которые я собираюсь в нём хранить.
для скажем "POD" вызывается memmove/memcpy
https://habr.com/ru/companies/otus/articles/704492/
а если вы нарушаете правило трех пяти нуля, пихая копи мув итд конструкторы и ассайменты
и при этом хотите структуру данных просто двигать
то вы что то делаете не так
Здравствуйте, 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>>> {
/*...*/
};
Здравствуйте, so5team, Вы писали:
S>Просто на всякий случай: std::aligned_storage задеприкейтили в C++23.
А какая предлагается альтернатива?
Здравствуйте, wander, Вы писали:
S>>Просто на всякий случай: std::aligned_storage задеприкейтили в C++23.
W>А какая предлагается альтернатива?
Там же в PDF-е и предложенная альтернатива:
alignas(T) std::byte t_buff[sizeof(T)];