$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Joe Gottman (jgottman_at_[hidden])
Date: 2005-12-29 19:21:41
There is an error in the implementation of the converting assignment
operator for optional<T>. It is currently implemented as
template<class U>
optional& operator= ( optional<U> const& rhs )
{
this->assign(rhs.get());
return *this ;
}
The problem with this is that if rhs is not initialized then rhs.get()
asserts. This function should be rewritten as
template<class U>
optional& operator= ( optional<U> const& rhs )
{
if (rhs.is_initialized())
this->assign(rhs.get());
else
destroy();
return *this ;
}
Joe Gottman