いくつかのアイテムのバイナリシリアル化を実行していて、それらを不透明なバイトバッファに書き込んでいる状況があります:
int SerializeToBuffer(unsigned char* buffer)
{
stringstream ss;
vector<Serializable> items = GetSerializables();
string serializedItem("");
short len = 0;
for(int i = 0; i < items.size(); ++i)
{
serializedItem = items[i].Serialize();
len = serializedItem.length();
// Write the bytes to the stream
ss.write(*(char*)&(len), 2);
ss.write(serializedItem.c_str(), len);
}
buffer = reinterpret_cast<unsigned char*>(
const_cast<char*>(ss.str().c_str()));
return items.size();
}
const
から -nessを削除してから結果をバッファに割り当てても安全ss.str().c_str()
ですreinterpret_cast
かunsigned char*
?
注: コードは、私が何をしているかを示すためのものであり、必ずしもコンパイルされるとは限りません。