#include <boost/exception/info.hpp>
namespace
boost
{
template <class E, class Tag, class T>
E const & operator<<( E const & x, error_info<Tag,T> const & v );
}
E must be boost::exception, or a type that derives (indirectly) from boost::exception.
A copy of v is stored into x. If x already contains data of type error_info<Tag,T>, that data is overwritten. Basic exception safety guarantee.
x.
std::bad_alloc, or any exception emitted by the T copy constructor.