所以我不得不重写 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”未命名类型
...命名空间“boost::archive”中的错误“mongo_iarchive”未命名类型
但是对于 serialization::access 类没有问题。我不想在这个级别包含 mongo 档案,因为我不希望客户端代码依赖于 mongo 序列化和 mongo c++ 驱动程序库。请注意,mongo 序列化库不是 boost 归档/序列化库的一部分,它是一个自定义库(尽管我认为这不重要)