我正在使用 2 个库。一个接收并返回std::string
s,而另一个使用std::vector<unsigned char>
s。
如果我可以从中窃取底层数组std::string
并且std::vector<unsigned char>
能够将它们相互移动而无需过度复制,那就太好了。
ATM我使用类似的东西:
const unsigned char* raw_memory =
reinterpret_cast<const unsigned char*>(string_value.c_str()),
std::vector<unsigned char>(raw_memory, raw_memory + string_value.size();
另一种方式:
std::string(
reinterpret_cast<const char*>(&vector_value[0]),
vector_value.size());
能够定义一个会好得多:
std::string move_into(std::vector<unsigned char>&&);
std::vector<unsigned char> move_into(std::string&&);