From 915a1dc49b78b2803a1fa4925003e67f34e46543 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 26 Nov 2019 02:21:52 +0200 Subject: [PATCH] Add asciidoc documentation --- doc/.gitignore | 2 + doc/BOOST_THROW_EXCEPTION.html | 55 ------- doc/Jamfile | 23 +++ doc/boost_throw_exception_hpp.html | 65 --------- doc/changes.adoc | 19 +++ doc/description.adoc | 117 +++++++++++++++ doc/index-docinfo-footer.html | 6 + doc/index.adoc | 27 ++++ doc/reference.adoc | 98 +++++++++++++ doc/reno.css | 226 ----------------------------- doc/throw_exception.html | 64 -------- doc/valid-css.png | Bin 5130 -> 0 bytes doc/valid-xhtml.png | Bin 5805 -> 0 bytes index.html | 6 +- 14 files changed, 295 insertions(+), 413 deletions(-) create mode 100644 doc/.gitignore delete mode 100644 doc/BOOST_THROW_EXCEPTION.html create mode 100644 doc/Jamfile delete mode 100644 doc/boost_throw_exception_hpp.html create mode 100644 doc/changes.adoc create mode 100644 doc/description.adoc create mode 100644 doc/index-docinfo-footer.html create mode 100644 doc/index.adoc create mode 100644 doc/reference.adoc delete mode 100644 doc/reno.css delete mode 100644 doc/throw_exception.html delete mode 100644 doc/valid-css.png delete mode 100644 doc/valid-xhtml.png diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000..0972e2d --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,2 @@ +/html/ +/pdf/ diff --git a/doc/BOOST_THROW_EXCEPTION.html b/doc/BOOST_THROW_EXCEPTION.html deleted file mode 100644 index 7d8806f..0000000 --- a/doc/BOOST_THROW_EXCEPTION.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - BOOST_THROW_EXCEPTION - - - -
-
-
-
- -

Boost Exception

-
- - - -

BOOST_THROW_EXCEPTION

-
-

#include <boost/throw_exception.hpp>

-
#if !defined( BOOST_EXCEPTION_DISABLE )
-    #include <boost/exception/exception.hpp>
-    #include <boost/current_function.hpp>
-    #define BOOST_THROW_EXCEPTION(x)\
-        ::boost::throw_exception( ::boost::enable_error_info(x) <<\
-        ::boost::throw_function(BOOST_THROW_EXCEPTION_CURRENT_FUNCTION) <<\
-        ::boost::throw_file(__FILE__) <<\
-        ::boost::throw_line((int)__LINE__) )
-#else
-    #define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
-#endif
-

This macro takes an exception object, records the current function name, __FILE__ and __LINE__ in it, and forwards it to throw_exception. To recover this information at the catch site, use get_error_info; the information is also included in the message returned by diagnostic_information.

-
- - - - -
-
-
- - diff --git a/doc/Jamfile b/doc/Jamfile new file mode 100644 index 0000000..93ecbc9 --- /dev/null +++ b/doc/Jamfile @@ -0,0 +1,23 @@ +# Copyright 2017 Peter Dimov +# +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +import asciidoctor ; + +html throw_exception.html : index.adoc ; + +install html_ : throw_exception.html : html ; + +pdf throw_exception.pdf : index.adoc ; +explicit throw_exception.pdf ; + +install pdf_ : throw_exception.pdf : pdf ; +explicit pdf_ ; + +############################################################################### +alias boostdoc ; +explicit boostdoc ; +alias boostrelease : html_ ; +explicit boostrelease ; diff --git a/doc/boost_throw_exception_hpp.html b/doc/boost_throw_exception_hpp.html deleted file mode 100644 index a99cd9b..0000000 --- a/doc/boost_throw_exception_hpp.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - boost/throw_exception.hpp - - - -
-
-
-
- -

Boost Exception

-
- - - -

boost/throw_exception.hpp

-
-

Synopsis

-
#if !defined( BOOST_EXCEPTION_DISABLE )
-    #include <boost/exception/exception.hpp>
-    #include <boost/current_function.hpp>
-    #define BOOST_THROW_EXCEPTION(x)\
-        ::boost::throw_exception( ::boost::enable_error_info(x) <<\
-        ::boost::throw_function(BOOST_THROW_EXCEPTION_CURRENT_FUNCTION) <<\
-        ::boost::throw_file(__FILE__) <<\
-        ::boost::throw_line((int)__LINE__) )
-#else
-    #define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
-#endif
-
-namespace
-boost
-    {
-#ifdef BOOST_NO_EXCEPTIONS
-    void throw_exception( std::exception const & e ); // user defined
-#else
-    template <class E>
-    void throw_exception( E const & e );
-#endif
-    }
-
- - - - -
-
-
- - diff --git a/doc/changes.adoc b/doc/changes.adoc new file mode 100644 index 0000000..6802450 --- /dev/null +++ b/doc/changes.adoc @@ -0,0 +1,19 @@ +//// +Copyright 2019 Peter Dimov +Distributed under the Boost Software License, Version 1.0. +http://www.boost.org/LICENSE_1_0.txt +//// + +[#changes] +# Release History +:toc: +:toc-title: +:idprefix: + +## Changes in Boost 1.73.0 + +* Added an overload of `throw_exception` that takes a `boost::source_location` + object. + +NOTE: Projects using `BOOST_THROW_EXCEPTION` with exceptions disabled will need + to add a definition of this new overload. diff --git a/doc/description.adoc b/doc/description.adoc new file mode 100644 index 0000000..262e369 --- /dev/null +++ b/doc/description.adoc @@ -0,0 +1,117 @@ +//// +Copyright 2019 Peter Dimov +Distributed under the Boost Software License, Version 1.0. +http://www.boost.org/LICENSE_1_0.txt +//// + +[#description] +# Description +:toc: +:toc-title: +:idprefix: + +The header `` provides a common Boost infrastructure +for throwing exceptions, in the form of a function `boost::throw_exception` +and a macro `BOOST_THROW_EXCEPTION`. + +`boost::throw_exception(x);` is a replacement for `throw x;` that both +degrades gracefully when exception handling support is not available, and +integrates the thrown exception into facilities provided by +link:../../../exception/index.html[Boost.Exception], such as automatically +providing a base class of type `boost::exception` and support for +`boost::exception_ptr`. + +When exception handling is not available, the function is only declared, but +not defined. This allows users to provide their own definition. + +An overload for `boost::throw_exception` that takes a +link:../../../assert/doc/html/assert.html#source_location_support[`boost::source_location`] +is provided. It records the supplied source location into the `boost::exception` +base class, from where it can later be retrieved when the exception is caught. +link:../../../exception/doc/diagnostic_information.html[`boost::diagnostic_information`] +automatically displays the stored source location. + +The macro `BOOST_THROW_EXCEPTION(x)` expands to +`::boost::throw_exception(x, BOOST_CURRENT_LOCATION)`, passing the current source +location. + +[#examples] +# Examples +:toc: +:toc-title: +:idprefix: + +## Using BOOST_THROW_EXCEPTION + +``` +#include +#include +#include +#include + +void f() +{ + BOOST_THROW_EXCEPTION( std::runtime_error( "Unspecified runtime error" ) ); +} + +int main() +{ + try + { + f(); + } + catch( std::exception const & x ) + { + std::cerr << boost::diagnostic_information( x ) << std::endl; + } +} +``` + +## Using boost::throw_exception with a source location + +``` +#include +#include +#include +#include +#include +#include + +void throw_index_error( std::size_t i, std::size_t n, + boost::source_location const & loc ) +{ + std::string msg = "Index out of range: " + + boost::lexical_cast( i ) + " >= " + + boost::lexical_cast( n ); + + boost::throw_exception( std::out_of_range( msg ), loc ); +} + +void f1( std::size_t i, std::size_t n ) +{ + if( i >= n ) + { + throw_index_error( i, n, BOOST_CURRENT_LOCATION ); + } +} + +void f2( std::size_t i, std::size_t n ) +{ + if( i >= n ) + { + throw_index_error( i, n, BOOST_CURRENT_LOCATION ); + } +} + +int main() +{ + try + { + f1( 4, 3 ); + } + catch( std::exception const & x ) + { + std::cerr << boost::diagnostic_information( x ) << std::endl; + } +} +``` diff --git a/doc/index-docinfo-footer.html b/doc/index-docinfo-footer.html new file mode 100644 index 0000000..51969f4 --- /dev/null +++ b/doc/index-docinfo-footer.html @@ -0,0 +1,6 @@ + diff --git a/doc/index.adoc b/doc/index.adoc new file mode 100644 index 0000000..a27f28a --- /dev/null +++ b/doc/index.adoc @@ -0,0 +1,27 @@ +//// +Copyright 2017, 2019 Peter Dimov +Distributed under the Boost Software License, Version 1.0. +http://www.boost.org/LICENSE_1_0.txt +//// + +# Boost.ThrowException +Peter Dimov, Emil Dotchevski +:toc: left +:idprefix: +:docinfo: private-footer + +:leveloffset: +1 + +include::description.adoc[] +include::changes.adoc[] +include::reference.adoc[] + +:leveloffset: -1 + +[appendix] +## Copyright and License + +This documentation is + +* Copyright 2019 Peter Dimov +* Distributed under the http://www.boost.org/LICENSE_1_0.txt[Boost Software License, Version 1.0]. diff --git a/doc/reference.adoc b/doc/reference.adoc new file mode 100644 index 0000000..413d60c --- /dev/null +++ b/doc/reference.adoc @@ -0,0 +1,98 @@ +//// +Copyright 2019 Peter Dimov +Distributed under the Boost Software License, Version 1.0. +http://www.boost.org/LICENSE_1_0.txt +//// + +[#reference] +# Reference +:toc: +:toc-title: +:idprefix: + +[#synopsis] +## Synopsis + +``` +#include +#include +#include + +namespace boost +{ + +#if defined( BOOST_NO_EXCEPTIONS ) + +BOOST_NORETURN void throw_exception( std::exception const & e ); // user defined + +BOOST_NORETURN void throw_exception( std::exception const & e, + boost::source_location const & loc ); // user defined + +#else + +template BOOST_NORETURN inline void throw_exception( E const & e ); + +template BOOST_NORETURN void throw_exception( E const & e, + boost::source_location const & loc ); + +#endif + +} // namespace boost + +#define BOOST_THROW_EXCEPTION(x) \ + ::boost::throw_exception(x, BOOST_CURRENT_LOCATION) +``` + +## throw_exception + +``` +#if defined( BOOST_NO_EXCEPTIONS ) + +BOOST_NORETURN void throw_exception( std::exception const & e ); // user defined + +#else + +template BOOST_NORETURN inline void throw_exception( E const & e ); + +#endif +``` + +Requires: :: `E` must have `std::exception` as a public and unambiguous base + class. + +Effects: :: + * When exceptions aren't available, the function is declared, but + not defined. The user is expected to supply an appropriate definition. + * Otherwise, if `BOOST_EXCEPTION_DISABLE` is defined, the function + throws `e`. + * Otherwise, the function throws an object of a type derived from `E`, + derived from `boost::exception`, if `E` doesn't already derive from + it, and containing the necessary support for `boost::exception_ptr`. + +``` +#if defined( BOOST_NO_EXCEPTIONS ) + +BOOST_NORETURN void throw_exception( std::exception const & e, + boost::source_location const & loc ); // user defined + +#else + +template BOOST_NORETURN void throw_exception( E const & e, + boost::source_location const & loc ); + +#endif +``` + +Requires: :: `E` must have `std::exception` as a public and unambiguous base + class. + +Effects: :: + * When exceptions aren't available, the function is declared, but + not defined. The user is expected to supply an appropriate definition. + * Otherwise, if `BOOST_EXCEPTION_DISABLE` is defined, the function + throws `e`. + * Otherwise, the function throws an object of a type derived from `E`, + derived from `boost::exception`, if `E` doesn't already derive from + it, and containing the necessary support for `boost::exception_ptr`. The + `boost::exception` base class is initialized to contain the source + location `loc`. diff --git a/doc/reno.css b/doc/reno.css deleted file mode 100644 index a079b50..0000000 --- a/doc/reno.css +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -body -{ - font-family: Trebuchet, Verdana, Arial, Helvetica, Sans; - font-size: 10pt; - margin: 0; - padding: 0; - background-color: #E5E5E5; -} - -.RenoPageList, -ol, -ul -{ - clear: both; -} - -.RenoPageList -{ - margin:0; -} - -h1 -{ - font-size: 24pt; - clear: left; - padding-top: 5pt; - padding-bottom: 5pt; - margin-top: 0; - margin-bottom: 0; -} - -h2 -{ - font-size: 18pt; - clear: left; - padding-top: 20pt; - padding-bottom: 5pt; - margin-top: 0; - margin-bottom: 0; -} - -h3 -{ - font-size: 14pt; - clear: left; - padding-top: 15pt; - padding-bottom: 5pt; - margin-top: 0; - margin-bottom: 0; -} - -h4 -{ - font-size: 10pt; - float: left; - clear: left; - padding-top: 5pt; - padding-bottom: 0; - margin-top: 0; - margin-bottom: 0; - margin-right: 4pt; -} - -p -{ - font-size: 10pt; - padding-top: 5pt; - padding-bottom: 5pt; - margin-top: 0; - margin-bottom: 0; - clear:right; -} - -pre -{ - border-top: 1px solid #C5C5C5; - border-bottom: 1px solid #C5C5C5; - border-left: 1px solid #C5C5C5; - border-right: 1px solid #C5C5C5; - font-size: 10pt; - padding-top: 5pt; - padding-bottom: 5pt; - padding-left: 5pt; - padding-right: 5pt; - margin-left: 18pt; - margin-right: 18pt; - margin-top: 10pt; - margin-bottom: 10pt; - clear: both; -} - -ol,ul -{ - padding-top: 0; - padding-bottom: 0; - margin-top: 0; - margin-bottom: 0; -} - -ul li -{ - padding-top: 5pt; - padding-bottom: 5pt; - margin-top: 0; - margin-bottom: 0; -} - -.RenoIndex h3 -{ - margin: 20pt 0 5pt 0; - padding: 2pt; - display: inline; - border: 1.5pt solid #A0A0A0; - float: left; - clear: both; - width: 15pt; - text-align: center; - background-color: #EAEAEA; -} - -.RenoIndex p -{ - clear: both; - margin: 0; - padding: 0; -} - -.RenoHookUnbound, -.RenoHookBound -{ - background-position: left center; - background-image: url('link.gif'); - background-repeat: no-repeat; - padding-left: 10pt; -} - -.RenoIncludeDIV -{ - padding: 0; - margin: 0; -} - -.RenoError -{ - background-color: red; - color: white; - display: inline; -} - -a -{ - text-decoration: underline; - color: #0000AA; -} - -tt -{ - font-size: 10pt; -} - -hr -{ - border: 0; - color: black; - background-color: black; - height: 1px; - margin-top: 20pt; -} - -blockquote -{ - padding-top: 0; - padding-bottom: 0; - padding-right: 0; - padding-left: 20pt; - margin: 0; -} - -#boost_logo -{ - float:right; -} - -#footer -{ - margin-top:20pt; -} - -.logo_pic -{ - border:0; -} - -.logo -{ - float:right; - margin-left: 6pt; - margin-right: -4pt; -} - -.body-0 -{ - min-width: 40em; - padding-left: 30px; - background: url(shade-l.png) repeat-y left; -} -.body-1 -{ - padding-right: 30px; - background: url(shade-r.png) repeat-y right; -} -.body-2 -{ - background-color: white; - padding: 0 8pt 0 8pt; - margin-left: 0; - border-top: solid 2.5pt #717171; - border-bottom: solid 3pt #717171; -} diff --git a/doc/throw_exception.html b/doc/throw_exception.html deleted file mode 100644 index eb03fdb..0000000 --- a/doc/throw_exception.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - throw_exception - - - -
-
-
-
- -

Boost Exception

-
- - - -

throw_exception

-
-

#include <boost/throw_exception.hpp>

-
namespace
-boost
-    {
-#ifdef BOOST_NO_EXCEPTIONS
-    void throw_exception( std::exception const & e ); // user defined
-#else
-    template <class E>
-    void throw_exception( E const & e );
-#endif
-    }
-

Effects:

-
  • If BOOST_NO_EXCEPTIONS is not defined, boost::throw_exception(e) throws an exception of unspecified type that derives publicly from E and from boost::exception.
  • -
  • If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of throw_exception are allowed to assume that the function never returns; therefore, if the user-defined throw_exception returns, the behavior is undefined.
  • -
-

Requirements:

-

E must derive publicly from std::exception. E may or may not derive from boost::exception.

-

Notes:

-
  • The emitted exception can be intercepted as E &, std::exception &, or boost::exception &.
  • -
  • The emitted exception supports boost::exception_ptr.
  • -
  • If BOOST_EXCEPTION_DISABLE is defined and BOOST_NO_EXCEPTIONS is not defined, boost::throw_exception(e) equivalent to throw e.
  • -
-
- - - - -
-
-
- - diff --git a/doc/valid-css.png b/doc/valid-css.png deleted file mode 100644 index 931bacfe9fcd25a55261b9e3b4883f215cc74c7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5130 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 diff --git a/doc/valid-xhtml.png b/doc/valid-xhtml.png deleted file mode 100644 index 7b127151886262d93fb0685978a9b973027f244e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5805 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 diff --git a/index.html b/index.html index 100b9a0..8387dfb 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,13 @@ - + Automatic redirection Automatic redirection failed, please go to -boost_throw_exception_hpp.html
-

© Copyright Beman Dawes, 2001

+throw_exception.html
+

Copyright Beman Dawes, 2001

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)