|
Boost Users : |
From: Robert Ramey (ramey_at_[hidden])
Date: 2006-03-01 21:48:30
Note that the tutorial programs do use BOOST_IS_ABSTRACT so I've always
assumed that
it functions as advertised. Since the demo doesn't use BOOST_EXPORT, I
suspect that
that there is some sort of problem related to instantiation of abstract base
class code
for exported types. I'lll look into it.
Robert Ramey
"RIVASSEAU Jean Noel" <JN.RIVASSEAU_at_[hidden]> wrote in message
news:87F60F7FA02FF749AFB02BD9FCAA6B04DE1BE3_at_naserv31.nanterre.oberthurcs.com...
I quote the Boost serialization docs:
When serializing an object through a pointer to its base class and that base
class is abstract (i.e. has at least one virtual function assigned a value
of 0), A compile error will be emitted. This is addressable in one over
several ways:
remove the =0 in the base classes so that the base class is no longer
abstract.
implement is_abstract for your compiler. (code written according to the C++
standard is included with this library. But it is known to fail on several
compilers.
If the compiler suports "is_abstract" type trait - use that.
Otherwise assume a class is NOT abstract
unless BOOST_IS_ABSTRACT has been set for the class.
use the macro BOOST_IS_ABSTRACT(my_class) to indicate that the class is an
abstract base class. This will cause the compiler to avoid generating code
that causes this error.
I still do not understand part 2 of this advice, Robert. Could you explain?
Jean-Noël
Ps: as already mentioned, part 3 does not change anything for me, and I'd
like to avoid the solution of part 1 since I do want the base class to be
abstract.
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
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