$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2004-11-30 08:19:43
David Abrahams ha escrito:
> Joaquín Mª López Muñoz wrote:
>
> > Yes. Pavel proposes to add this informative macro and *no* workaround, so
> > that it's up to the user to use is_abstract in defective compilers (even
> > risking a crash) or build some internal logic to avoid it based on the macro.
> >
> > Thinking about it, I tend to agree with Pavel and you: returning false is not
> > necessarily a reasonable default, so I'd go for the macro, only (and ask
> > Robert to fix his hack in Boost.Serialization.)
>
> It seems to me that true is the appropriate safe default for
> is_abstract. Am I missing something?
>
So that generic code won't try to instantiate an abstract type? Is this
your rationale?
Well, maybe. In the case of Boost.Serialization, however, I think that the
appropriate default is false, since serializating (types derived from) an abstract
type is more difficult than the non-abstract case.
Either way, if we have a BOOST_NO_IS_ABSTRACT (for instance)
macro, the programmer can choose whether to rely on is_abstract's default
of not.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo