$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Samuel Krempp (krempp_at_[hidden])
Date: 2003-09-19 11:28:49
It's really a minor issue, but this utility's role is to use a base class as
a member (construct it early, but don't inherit its members).
Wouldn't it be more natural to call it member_from_base (or
base_as_member) ?
this class was motivated by the case of deriving std::basic_stream, like in
boost/test/detail/nullstream.hpp (edited to make shorter lines) :
template<typename Ch, class Tr >
class basic_onullstream : 
   private boost::base_from_member<basic_nullbuf<Ch, Tr> >
  ,public ::std::basic_ostream<Ch, Tr> 
{
  typedef boost::base_from_member<basic_nullbuf<Ch, Tr> > pbase_type;
  typedef ::std::basic_ostream<Ch, Tr>  base_type;
public:
  // Constructor
  basic_onullstream() 
   : pbase_type(), base_type( &this->pbase_type::member ) {}
};
and I must say reading 'base_from_member< .. >' confused me for a few
seconds. (even if I knew from the beginning this stream class was probably
deriving basic_nullbuf as a way to construct it early)
I think 'base_from_member' refers to the writing process, where we transform
a member into a base using this class. 
But from the reader point of view, it's the opposite, the intent of the
template class is to transform a base into a member..
-- Samuel