boost - 将代码更改为不使用 boost 中的命名空间
问题描述
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)
{
....
}
}}
我需要在类中使用此代码,但由于命名空间而出现错误。有什么帮助吗?来自文档:https ://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/serialization.html#splittingfreefunctions
提前致谢!
解决方案
您将侵入式序列化(成员函数)与非侵入式(自由函数)混淆了。
您发布的咖啡是免费功能(例如,当您无法将序列化代码添加到类时(它可能来自第三方标头),可以使用它。
在类定义中,您应该采用成员函数方法:https ://www.boost.org/doc/libs/1_72_0/libs/serialization/doc/serialization.html#member
如果您还需要拆分保存/加载函数,您也可以将其作为成员函数:https ://www.boost.org/doc/libs/1_72_0/libs/serialization/doc/serialization.html#splittingmemberfunctions
推荐阅读
- c++ - 基构造函数的私有使用声明不是私有的
- reactjs - 当单击子组件按钮时,如何强制组件在 react-native 中重新渲染
- sql - 'GO' 附近的 SQL 语法不正确
- c# - JustMock 实体框架更新记录
- java - Spring Boot 2.0.1 SpringApplicationBuilder 不存在
- java - 使用 objectinputstream 和 objectoutputstream 的 java 网络
- c# - 访问异常类的数据属性中的字典项
- html - 将 htm 文件读取到 .HTMLBody VBA
- c# - C# 尝试使用泛型类清理代码
- r - R auto.arima() vs arima() 使用相同的模型给出不同的结果