cereal
A C++11 library for serialization
 All Classes Files Functions Variables Typedefs Enumerations Groups
Public Member Functions | Public Attributes | List of all members
cereal::base_class< Base > Struct Template Reference

Casts a derived class to its non-virtual base class in a way that safely supports abstract classes. More...

#include <cereal/types/base_class.hpp>

Public Member Functions

template<class Derived >
 base_class (Derived const *derived)
 

Public Attributes

Base * base_ptr
 

Detailed Description

template<class Base>
struct cereal::base_class< Base >

Casts a derived class to its non-virtual base class in a way that safely supports abstract classes.

This should be used in cases when a derived type needs to serialize its base type. This is better than directly using static_cast, as it allows for serialization of pure virtual (abstract) base classes.

See Also
virtual_base_class
struct MyBase
{
int x;
virtual void foo() = 0;
template <class Archive>
void serialize( Archive & ar )
{
ar( x );
}
};
struct MyDerived : public MyBase //<-- Note non-virtual inheritance
{
int y;
virtual void foo() {};
template <class Archive>
void serialize( Archive & ar )
{
ar( y );
}
};

The documentation for this struct was generated from the following file: