Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2005-03-12 22:46:18


"Aaron W. LaFramboise" <aaronrabiddog51_at_[hidden]> writes:

> Most of the time when a library routine encounters an error, that error
> is fatal, and the proper course of action is fairly obvious: throw an
> exception, return a singular value, or similar.
>
> However, in some cases, we encounter errors that are non-fatal, and
> simply giving up is not the most appropriate course of action. The
> error encountered may be inconsequential to successful completion, or we
> may have gotten notification of the error too late for it to make a
> difference, or design considerations may prevent us from terminating. A
> common example is encountering an unrecoverable error in a destructor
> while closing a file.
>
> These errors must be reported. However, without making special
> provisions for doing so, its unclear exactly how to report them. As
> we're in code for generic libraries, suggestions such as printing to
> std::cerr are clearly unacceptable. We also want to avoid encumbering
> the library interface with error-handling clutter that may never be used.
>
> How should Boost libraries be designed so as to allow these errors to be
> reported? Do existing Boost libraries have problems with these
> situations, and if so, how have they solved it?

You might try instantiating

  boost::mpl::print<Some_Type_Whose_Name_Describes_The_Problem>

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk