c++ - C++如何从引用中获取值

标签 c++ boost reference boost-serialization

我有一个函数,它返回一个 const& 对象。比方说,

class Y {
    private:
        Id id;
    public:
        Id const& GetId() const;
}  

现在这个 Y 对象是另一个类的一部分,比方说 X 类,它需要通过 boost 序列化。

class X {
    template <class Archive>
    void serialize(Archive& ar, uint32 version)
     {
         ar & y->GetId();
     }
     Y y;
}

然而,boost 提示这个并给出错误:

error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>'


C:\Users\Y.h(580) : see reference to function template instantiation 'Archive &boost::archive::detail::interface_iarchive<Archive>::operator &<const Id>(T &)' being compiled
            with
            [

如何序列化 Id?

最佳答案

 ar & y->GetId(); 

应该是

  ar & y.GetId();

关于c++ - C++如何从引用中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18386756/

相关文章:

c++ - C++ 中的回调,模板成员?

c++ - 为什么在使用 boost::function 调用函数对象时不需要类实例

c++ - 在 C++ 中使用引用而不是指针有什么好处吗?

reference - 如何在 Rust 中以最惯用的方式将 Option<&T> 转换为 Option<T>?

c++ - 在 MainWindow 中全屏显示 QDialog 有时只能工作

c++ - 将函数作为模板参数传递

c++ - Boost异步主线程回调

c++ - 当使用 async_write_some 和 async_write 时

c++ - 将对非指针成员变量的引用作为指针返回可以吗?

c++ - 如何定义创建前一个对象的默认构造函数