這不起作用:如何使用boost :: serialization序列化TAO :: unbouded_basic_string_sequence <T>?
template <class Archive, typename T>
inline void save(Archive& arch, const TAO::unbounded_basic_string_sequence<T>& varSequence, unsigned int version)
{
size_t length = varSequence.length();
arch & length & make_array(varSequence.get_buffer(), length);
}
template <class Archive, typename T>
void load(Archive& arch, TAO::unbounded_basic_string_sequence<T>& varSequence, unsigned int version)
{
size_t length;
arch & length;
varSequence.length(length);
arch & make_array(varSequence.get_buffer(), length);
}
template <class Archive, typename T>
inline void serialize(Archive& arch, TAO::unbounded_basic_string_sequence<T>& varSequence, const unsigned int version)
{
split_free(arch, varSequence, version);
}
的compiller說:
(..)/include/boost/serialization/access.hpp:118:9: error: request for member 'serialize' in 't', which is of non-class type 'char'
我知道,C風格的字符串不被升壓::序列化的支持。理論上我可以使用std :: string作爲save(),但我不知道如何從std :: string返回到TAO :: unbouded_basic_string_sequence - 這個類幾乎沒有任何文檔。
完美地工作,謝謝 - 一件小事:save()應該獲得被const引用序列化的對象。 – Siekacz
@Siekacz hrm?我有,對吧?我編譯了代碼(我只是無法鏈接它,因爲我沒有TAO構建) – sehe
哦,是的 - 只是沒有看到const之前:) – Siekacz