Serialization segfault发生在我序列化apache模块中的嵌套类时

Serialization segfault发生在我序列化apache模块中的嵌套类时,serialization,boost,apache-modules,Serialization,Boost,Apache Modules,在Apache模块中序列化简单类“A”时没有出错,但当我尝试序列化复杂对象(如“X”)时,它有一个成员,类型为“A”,我在Apache模块中得到了segfault。(这不会发生在可执行控制台应用程序上) -------------------------这是我的密码:--------------------- class A { private: friend class boost::serialization::access; // to enable boost "access"

在Apache模块中序列化简单类“A”时没有出错,但当我尝试序列化复杂对象(如“X”)时,它有一个成员,类型为“A”,我在Apache模块中得到了segfault。(这不会发生在可执行控制台应用程序上)

-------------------------这是我的密码:---------------------

class A {
private:
    friend class boost::serialization::access; // to enable boost "access" class to call private "serialize" method of class "A"
    template<class ArchT>
    void serialize(ArchT &ar, unsigned int version) {   // method for both serializing and deserializing
        ar & memA; // (de)serialize member "memA"
    }
    std::string memA; // sample member
public:
    A(){}
    A(std::string pmemA) :
        memA(pmemA) {
    }
    std::string GetMemA()
    {
        return memA;
    }
};
class X {

private:
    friend class boost::serialization::access;
    template<class ArchT>
    void serialize(ArchT &ar, unsigned int version) {
        ar & memX;
        ar & a;
    }
    std::string memX;
    A a;
public:
    X(std::string pmemX, A pa) :
        memX(pmemX), a(pa) {
    }
    X(){}

};
-------------------
                        string st=GetRandomFileName();
            ofstream out(st.c_str());
            boost::archive::text_oarchive out_r(out);
            A a("Amem");
            X x("Xmem", a);
            out_r << x; // not works
                        out_r << a; // works!
A类{
私人:
friend类boost::serialization::access;//启用boost“access”类调用类“A”的私有“serialize”方法
模板
void serialize(ArchT&ar,unsigned int version){//用于序列化和反序列化的方法
ar&memA;//(反)序列化成员“memA”
}
std::string memA;//示例成员
公众:
A(){}
A(标准::字符串pmemA):
memA(pmemA){
}
std::string GetMemA()
{
返回memA;
}
};
X类{
私人:
好友类boost::serialization::access;
模板
void序列化(ArchT&ar,无符号int版本){
ar&memX;
ar&a;
}
std::string memX;
A A;
公众:
X(标准::字符串pmemX,A pa):
memX(pmemX),a(pa){
}
X(){}
};
-------------------
字符串st=GetRandomFileName();
流出流(st.c_str());
boost::archive::text\u oarchive out\u r(out);
A A(“Amem”);
X X(“Xmem”,a);
外面