好友类boost mongo_iarchive没有名称类型
friend class boost mongo_iarchive does not a name a type
所以我必须重写boost mongo归档类型的一些功能,因此我需要这些归档类型成为我正在序列化的类的友类。但是,我遇到了编译器查找存档类的问题。
//#include <boost/archive/mongo_iarchive.hpp> I dont want these here!
//#include <boost/archive/mongo_oarchive.hpp>
class MyClass
{
... //declarations
friend class boost::archive::mongo_oarchive;
friend class boost::archive::mongo_iarchive;
friend class boost::serialization::access;
...
};
我得到的错误是
…命名空间'boost::archive'中的'mongo_oarchive'没有命名a类型
…错误'mongo_iarchive'在命名空间'boost::archive'中没有命名一个类型
但是对于serialization::access类没有问题。我不想在这个级别包含mongo存档,因为我不希望客户端代码依赖于mongo序列化和mongo c++驱动程序库。注意mongo序列化库不是boost存档/序列化库的一部分,它是一个自定义库(尽管我认为这应该无关紧要)
您是否尝试了前向声明?
namespace boost
{
namespace archive
{
class mongo_oarchive;
class mongo_iarchive;
}
}
class MyClass
{
... //declarations
friend class boost::archive::mongo_oarchive;
friend class boost::archive::mongo_iarchive;
friend class boost::serialization::access;
...
};
相关文章:
- C++有多少类型的循环
- 类型名称 T::类型::值中的预期非限定 id
- 我的代码中是否有任何类型的错误,因为它没有给出正确的输出
- 使用相同名称类型的两个不同库
- 为什么我得到表达式必须有类类型错误?
- 标准库中会有算术类型的概念C++吗?
- C++是否有单位类型
- 如何将略有不同类型视为C 中的类型
- 有了C++类型特征,有没有办法避免铸造
- 为什么 GCC 无法优化,除非返回值有名称?
- ``n = 1u;'有什么类型
- 是否有输入类型在输入一定数量的字符后自动结束
- 是否有任何类型特征控制成员类型(不是成员变量)
- 非 OOP 版本的"财产"是否有名称?
- 为什么有不同类型的指针
- 是否有任何类型安全的、编译时检查的 printf 的实现
- 为什么我们有一个类型不匹配
- C Dijkstra算法 - 打印边缘名称/类型
- c++中的有符号类型表示
- C++:此模式是否有名称,是否可以改进