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
> 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.