从boost将代码更改为不使用名称空间 namespace boost{namespace序列化{ 模板 无效保存(存档和存档、常量my_class和t、未签名整数版本) { .... } 模板 无效加载(存档和ar、my_类和t、未签名整数版本) { .... } }}

从boost将代码更改为不使用名称空间 namespace boost{namespace序列化{ 模板 无效保存(存档和存档、常量my_class和t、未签名整数版本) { .... } 模板 无效加载(存档和ar、my_类和t、未签名整数版本) { .... } }},boost,namespaces,Boost,Namespaces,我需要在类中使用此代码,但由于名称空间的原因,我遇到了错误。有什么帮助吗?从文档中: 提前谢谢 您混淆了侵入式序列化(成员函数)和非侵入式序列化(自由函数) 您发布的coffee是免费函数(例如,当您无法向类添加序列化代码时,可以使用免费函数(它可能来自第三方头) 在类定义中,应采用成员函数方法: 如果还需要拆分保存/加载函数,也可以将其作为成员函数进行拆分:答案是将整个命名空间放在类之外 namespace boost { namespace serialization { template&

我需要在类中使用此代码,但由于名称空间的原因,我遇到了错误。有什么帮助吗?从文档中:


提前谢谢

您混淆了侵入式序列化(成员函数)和非侵入式序列化(自由函数)

您发布的coffee是免费函数(例如,当您无法向类添加序列化代码时,可以使用免费函数(它可能来自第三方头)

在类定义中,应采用成员函数方法:


如果还需要拆分保存/加载函数,也可以将其作为成员函数进行拆分:

答案是将整个命名空间放在类之外

namespace boost { namespace serialization {
template<class Archive>
void save(Archive & ar, const my_class & t, unsigned int version)
{
....
}
template<class Archive>
void load(Archive & ar, my_class & t, unsigned int version)
{
....
}
}}