Boost logo

Boost Users :

Subject: Re: [Boost-users] serialization with templates
From: Viatcheslav.Sysoltsev_at_[hidden]
Date: 2012-07-12 10:27:23


On Thu, 12 Jul 2012 11:18:56 +0200, Unger, Jörg F. <joerg.unger_at_[hidden]>
wrote:

> I'm trying to serialize a template class with multiple template
> parameters. In the header file, I declare something like
>
> template <int T1, int T2>
> class Node
> {
> private:
> std::array<double,T1> first;
> std::array<double,T2> second;
> }
>
> BOOST_CLASS_EXPORT_KEY(Node<1,1>)
>
> In a separate file, I would use the BOOST_CLASS_EXPORT_IMPLEMENT macro.
> However, when I'm using the BOOST_CLASS_EXPORT_KEY with a class that
> has more than one template parameter (as in the example above), I get an
> error message
> Error: macro "BOOST_CLASS_EXPORT_KEY" passed 2 arguments, but takes just
> 1
>
> I'm using gcc 4.7.1 with boost 50
>
> Any ideas, how to solve that problem?
>
> Jörg F.

Hi,

My boost 1.47 does not have BOOST_CLASS_EXPORT_KEY but I suppose this is a
macro, therefore there is a problem with comma in template. Try to use
typedef or maybe BOOST_PP_COMMA may help here.

-- Slava


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net