Я ищу строковую реализацию с фиксированным верхним размером, которая может быть использована в среде memcopy и которая может быть легко конструируемой и копируемой.
Я нашел boost beast static_string, но IDK, если мой пример работает случайно или нет?
#include <algorithm>
#include <iostream>
#include <boost/beast/core/static_string.hpp>
boost::beast::static_string<16> s1("abc");
int main(){
boost::beast::static_string<16> s2;
std::copy_n((char*)&s1, sizeof(s2), (char*)&s2);
s1.push_back('X');
std::cout << "--" << std::endl;
std::cout << s2 << std::endl;
s2.push_back('Y');
std::cout << s2 << std::endl;
std::cout << std::is_trivial_v<decltype(s2)> << std::endl;
}
примечание: последняя строка говорит, что тип копируется не тривиально, но возможно, Винн ie забыл добавить черту типа.
PS Я знаю, что это вообще плохая идея, то, что я заменяю, еще хуже, просто простой массив C, и изменение выделения / копирования для поддержки std :: string - это гораздо больше работы.