Hi,

I want to use a non inline serialize method of a class. When
instantiating it not explicitly the linker quits with undefined symbols.
So I tried to instantiate it that way and it does not work anyway.
Here is my code. Does anyone see what I've done wrong?
I did also try to use export.hpp but it doesn't help too.
Thank you very much, Jan.

// Class.hpp

#include <boost/archive/xml_oarchive
.hpp>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>

class CSerTest
{
    std::string a_, b_, c_;
    friend class boost::serialization::access;
    template<class Archive>    void serialize( Archive & ar, const unsigned int );

    public:
        CSerTest();
};

BOOST_CLASS_VERSION(CSerTest, 1);

// Class.cpp

#include "Class.hpp"

CSerTest::CSerTest() : a_("1"), b_("2"), c_("3")
{

}

template<class Archive>    void CSerTest::serialize( Archive & ar, const unsigned int )
{
    ar & BOOST_SERIALIZATION_NVP(a_) & BOOST_SERIALIZATION_NVP(b_) & BOOST_SERIALIZATION_NVP(c_);
}

// main.cpp

#include <fstream>
#include "Class.hpp"

///////////////////////// without effect ////////////////////////////////////
template void CSerTest::serialize<boost::archive::xml_oarchive>(boost::archive::xml_oarchive&, unsigned int );

int main()
{
    CSerTest instance;

    std::ofstream ofs( "out_file.txt" );
    boost::archive::xml_oarchive oxa( ofs );
   
    oxa << BOOST_SERIALIZATION_NVP(instance);
}

The linker (MS version 8) returns with:
---
Creating library mytest.lib and object mytest.exp
Main.obj : error LNK2019: unresolved external symbol "private: void
__thiscall CSerTest::serialize<class boost::archive::xml_oarchive>(class boost::archive::xml_oarchive &,unsigned int)"(??$serialize@ Vxml_oarchive@archive@boost@@@CSerTest@@AAEXAAVxml_oarchive@archive@boost@@I@Z) referenced in function "public: static void __cdeclboost::serialization::access::serialize<class boost::archive::xml_oarchive,class CSerTest>(class boost::archive::xml_oarchive &,class CSerTest &,unsigned int)"(??$serialize@ Vxml_oarchive@archive@boost@@VCSerTest@@@access@serialization@boost@@SAXAAVxml_oarchive@archive@2@AAVCSerTest@@I@Z)mytest.exe
: fatal error LNK1120: 1 unresolved externals