1/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
2// dll_base.cpp
3
4// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
5// Use, modification and distribution is subject to the Boost Software
6// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8
9// Build a dll which contains the serialization for a class A
10// used in testing distribution of serialization code in DLLS
11#include <boost/serialization/export.hpp>
12
13#define BASE_EXPORT
14#include "base.hpp"
15
16template<class Archive>
17void base::serialize(
18 Archive &ar,
19 const unsigned int /* file_version */){
20}
21
22// for some reason this is required at least by MSVC
23// given that its declared virtual .. = 0; This
24// seems wrong to me but here it is.
25//polymorphic_base::~polymorphic_base(){}
26
27// instantiate code for text archives
28#include <boost/archive/text_oarchive.hpp>
29#include <boost/archive/text_iarchive.hpp>
30
31// instantiate code for polymorphic archives
32#include <boost/archive/polymorphic_oarchive.hpp>
33#include <boost/archive/polymorphic_iarchive.hpp>
34
35// note: BOOST_CLASS_EXPORT cannot be used to instantiate
36// serialization code for an abstract base class. So use
37// explicit instantiation in this case.
38//BOOST_CLASS_EXPORT(polymorphic_base)
39
40template BOOST_SYMBOL_EXPORT void base::serialize(
41 boost::archive::text_oarchive & ar,
42 const unsigned int version
43);
44template BOOST_SYMBOL_EXPORT void base::serialize(
45 boost::archive::text_iarchive & ar,
46 const unsigned int version
47);
48template BOOST_SYMBOL_EXPORT void base::serialize(
49 boost::archive::polymorphic_oarchive & ar,
50 const unsigned int version
51);
52template BOOST_SYMBOL_EXPORT void base::serialize(
53 boost::archive::polymorphic_iarchive & ar,
54 const unsigned int version
55);
56

source code of boost/libs/serialization/test/dll_base.cpp