diff --git a/factory/doc/factory.qbk b/factory/doc/factory.qbk index 487537c..7aa3faf 100644 --- a/factory/doc/factory.qbk +++ b/factory/doc/factory.qbk @@ -23,15 +23,17 @@ [def __boost_function__ [@http://www.boost.org/doc/html/function.html Boost.Function]] [def __boost__function__ [@http://www.boost.org/doc/html/function.html `boost::function`]] +[def __smart_pointer__ [@http://www.boost.org/libs/smart_ptr/index.html Smart Pointer]] [def __smart_pointers__ [@http://www.boost.org/libs/smart_ptr/index.html Smart Pointers]] [def __boost__shared_ptr__ [@http://www.boost.org/libs/smart_ptr/shared_ptr.htm `boost::shared_ptr`]] [def __std__map__ [@http://www.sgi.com/tech/stl/map.html `std::map`]] [def __std__string__ [@http://www.sgi.com/tech/stl/string.html `std::string`]] +[def __allocator__ [@http://www.sgi.com/tech/stl/concepts/allocator.html Allocator]] [def __std_allocator__ [@http://www.sgi.com/tech/stl/concepts/allocator.html Allocator]] [def __std_allocators__ [@http://www.sgi.com/tech/stl/concepts/allocator.html Allocators]] -[def __boost__ptr_map__ [@http://www.boost.org/libs/ptr_container/doc/ptr_map.html `__boost__ptr_map__`]] +[def __boost__ptr_map__ [@http://www.boost.org/libs/ptr_container/doc/ptr_map.html `boost::ptr_map`]] [def __boost__factory__ `boost::factory`] [def __boost__value_factory__ `boost::value_factory`] @@ -107,7 +109,7 @@ interfaces. // [...] - std::auto_ptr x = factories[some_name]->create(); + std::auto_ptr x(factories.at(some_name).create()); // [...] } @@ -117,30 +119,30 @@ lots of boilerplate code. In other words there is too much code to express a rather simple intention. We could use templates to get rid of some of it but the approach remains inflexible: - o We may want a factory that takes some arguments that are forwarded to - the constructor, - o we will probably want to use smart pointers, - o we may want several member functions to create different kinds of - objects, - o we might not necessarily need a polymorphic base class for the objects, - o as we will see, we do not need a factory base class at all, - o we might want to just call the constructor - without `new` to create - an object on the stack, and - o finally we might want to use customized memory management. +* We may want a factory that takes some arguments that are forwarded to + the constructor, +* we will probably want to use smart pointers, +* we may want several member functions to create different kinds of + objects, +* we might not necessarily need a polymorphic base class for the objects, +* as we will see, we do not need a factory base class at all, +* we might want to just call the constructor - without `new` to create + an object on the stack, and +* finally we might want to use customized memory management. Experience has shown that using function objects and generic Boost components -for their composition, Design Patterns that describe callback mechasisms +for their composition, Design Patterns that describe callback mechanisms (typically requiring a high percentage of boilerplate code with pure Object Oriented methodology) become implementable with just few code lines and without extra classes. Factories are callback mechanisms for constructors, so we provide two class -templates, __boost__value_factory__ and __boost__factory__, that encasulate +templates, __boost__value_factory__ and __boost__factory__, that encapsulate object construction via direct application of the constructor and the `new` operator, respectively. We let the function objects forward their arguments to the construction -expressions they encapsulate. Overthis __boost__factory__ optionally allows +expressions they encapsulate. Over this __boost__factory__ optionally allows the use of smart pointers and __std_allocators__. Compile-time polymorphism can be used where appropriate, @@ -156,7 +158,7 @@ Compile-time polymorphism can be used where appropriate, // [...] } -Now, to allow inhomogenous signaturs for the constructors of the types passed +Now, to allow inhomogeneous signatures for the constructors of the types passed in for `T` we can use __value_factory__ and __boost__bind__ to normalize between them. @@ -299,7 +301,7 @@ constructor, such as __boost__shared_ptr__). If a third template argument is `factory_passes_alloc_to_smart_pointer`, the allocator itself is used for the third constructor argument of `Pointer` (__boost__shared_ptr__ then uses the allocator to manage the memory of its -seperately allocated reference counter). +separately allocated reference counter). [heading Header] #include diff --git a/factory/doc/html/boostbook.css b/factory/doc/html/boostbook.css deleted file mode 100644 index 858d43c..0000000 --- a/factory/doc/html/boostbook.css +++ /dev/null @@ -1,528 +0,0 @@ -/*============================================================================= - Copyright (c) 2004 Joel de Guzman - http://spirit.sourceforge.net/ - - Use, modification and distribution is subject to 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 defaults -=============================================================================*/ - - body - { - margin: 1em; - font-family: sans-serif; - } - -/*============================================================================= - Paragraphs -=============================================================================*/ - - p - { - text-align: left; - font-size: 10pt; - line-height: 1.15; - } - -/*============================================================================= - Program listings -=============================================================================*/ - - /* Code on paragraphs */ - p tt.computeroutput - { - font-size: 9pt; - } - - pre.synopsis - { - font-size: 90%; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.5pc 0.5pc; - } - - .programlisting, - .screen - { - font-size: 9pt; - display: block; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.5pc 0.5pc; - } - - /* Program listings in tables don't get borders */ - td .programlisting, - td .screen - { - margin: 0pc 0pc 0pc 0pc; - padding: 0pc 0pc 0pc 0pc; - } - -/*============================================================================= - Headings -=============================================================================*/ - - h1, h2, h3, h4, h5, h6 - { - text-align: left; - margin: 1em 0em 0.5em 0em; - font-weight: bold; - } - - h1 { font: 140% } - h2 { font: bold 140% } - h3 { font: bold 130% } - h4 { font: bold 120% } - h5 { font: italic 110% } - h6 { font: italic 100% } - - /* Top page titles */ - title, - h1.title, - h2.title - h3.title, - h4.title, - h5.title, - h6.title, - .refentrytitle - { - font-weight: bold; - margin-bottom: 1pc; - } - - h1.title { font-size: 140% } - h2.title { font-size: 140% } - h3.title { font-size: 130% } - h4.title { font-size: 120% } - h5.title { font-size: 110% } - h6.title { font-size: 100% } - - .section h1 - { - margin: 0em 0em 0.5em 0em; - font-size: 140%; - } - - .section h2 { font-size: 140% } - .section h3 { font-size: 130% } - .section h4 { font-size: 120% } - .section h5 { font-size: 110% } - .section h6 { font-size: 100% } - - /* Code on titles */ - h1 tt.computeroutput { font-size: 140% } - h2 tt.computeroutput { font-size: 140% } - h3 tt.computeroutput { font-size: 130% } - h4 tt.computeroutput { font-size: 120% } - h5 tt.computeroutput { font-size: 110% } - h6 tt.computeroutput { font-size: 100% } - -/*============================================================================= - Author -=============================================================================*/ - - h3.author - { - font-size: 100% - } - -/*============================================================================= - Lists -=============================================================================*/ - - li - { - font-size: 10pt; - line-height: 1.3; - } - - /* Unordered lists */ - ul - { - text-align: left; - } - - /* Ordered lists */ - ol - { - text-align: left; - } - -/*============================================================================= - Links -=============================================================================*/ - - a - { - text-decoration: none; /* no underline */ - } - - a:hover - { - text-decoration: underline; - } - -/*============================================================================= - Spirit style navigation -=============================================================================*/ - - .spirit-nav - { - text-align: right; - } - - .spirit-nav a - { - color: white; - padding-left: 0.5em; - } - - .spirit-nav img - { - border-width: 0px; - } - -/*============================================================================= - Table of contents -=============================================================================*/ - - .toc - { - margin: 1pc 4% 0pc 4%; - padding: 0.1pc 1pc 0.1pc 1pc; - font-size: 80%; - line-height: 1.15; - } - - .boost-toc - { - float: right; - padding: 0.5pc; - } - -/*============================================================================= - Tables -=============================================================================*/ - - .table-title, - div.table p.title - { - margin-left: 4%; - padding-right: 0.5em; - padding-left: 0.5em; - } - - .informaltable table, - .table table - { - width: 92%; - margin-left: 4%; - margin-right: 4%; - } - - div.informaltable table, - div.table table - { - padding: 4px; - } - - /* Table Cells */ - div.informaltable table tr td, - div.table table tr td - { - padding: 0.5em; - text-align: left; - font-size: 9pt; - } - - div.informaltable table tr th, - div.table table tr th - { - padding: 0.5em 0.5em 0.5em 0.5em; - border: 1pt solid white; - font-size: 80%; - } - -/*============================================================================= - Blurbs -=============================================================================*/ - - div.note, - div.tip, - div.important, - div.caution, - div.warning, - div.sidebar - { - font-size: 9pt; /* A little bit smaller than the main text */ - line-height: 1.2; - display: block; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.0pc 0.5pc; - } - - div.sidebar img - { - padding: 1pt; - } - -/*============================================================================= - Callouts -=============================================================================*/ - .line_callout_bug img - { - float: left; - position:relative; - left: 4px; - top: -12px; - clear: left; - margin-left:-22px; - } - - .callout_bug img - { - } - -/*============================================================================= - Variable Lists -=============================================================================*/ - - /* Make the terms in definition lists bold */ - div.variablelist dl dt, - span.term - { - font-weight: bold; - font-size: 10pt; - } - - div.variablelist table tbody tr td - { - text-align: left; - vertical-align: top; - padding: 0em 2em 0em 0em; - font-size: 10pt; - margin: 0em 0em 0.5em 0em; - line-height: 1; - } - - div.variablelist dl dt - { - margin-bottom: 0.2em; - } - - div.variablelist dl dd - { - margin: 0em 0em 0.5em 2em; - font-size: 10pt; - } - - div.variablelist table tbody tr td p, - div.variablelist dl dd p - { - margin: 0em 0em 0.5em 0em; - line-height: 1; - } - -/*============================================================================= - Misc -=============================================================================*/ - - /* Title of books and articles in bibliographies */ - span.title - { - font-style: italic; - } - - span.underline - { - text-decoration: underline; - } - - span.strikethrough - { - text-decoration: line-through; - } - - /* Copyright, Legal Notice */ - div div.legalnotice p - { - text-align: left - } - -/*============================================================================= - Colors -=============================================================================*/ - - @media screen - { - /* Links */ - a - { - color: #005a9c; - } - - a:visited - { - color: #9c5a9c; - } - - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, - h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, - h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited - { - text-decoration: none; /* no underline */ - color: #000000; - } - - /* Syntax Highlighting */ - .keyword { color: #0000AA; } - .identifier { color: #000000; } - .special { color: #707070; } - .preprocessor { color: #402080; } - .char { color: teal; } - .comment { color: #800000; } - .string { color: teal; } - .number { color: teal; } - .white_bkd { background-color: #FFFFFF; } - .dk_grey_bkd { background-color: #999999; } - - /* Copyright, Legal Notice */ - .copyright - { - color: #666666; - font-size: small; - } - - div div.legalnotice p - { - color: #666666; - } - - /* Program listing */ - pre.synopsis - { - border: 1px solid #DCDCDC; - } - - .programlisting, - .screen - { - border: 1px solid #DCDCDC; - } - - td .programlisting, - td .screen - { - border: 0px solid #DCDCDC; - } - - /* Blurbs */ - div.note, - div.tip, - div.important, - div.caution, - div.warning, - div.sidebar - { - border: 1px solid #DCDCDC; - } - - /* Table of contents */ - .toc - { - border: 1px solid #DCDCDC; - } - - /* Tables */ - div.informaltable table tr td, - div.table table tr td - { - border: 1px solid #DCDCDC; - } - - div.informaltable table tr th, - div.table table tr th - { - background-color: #F0F0F0; - border: 1px solid #DCDCDC; - } - - /* Misc */ - span.highlight - { - color: #00A000; - } - } - - @media print - { - /* Links */ - a - { - color: black; - } - - a:visited - { - color: black; - } - - .spirit-nav - { - display: none; - } - - /* Program listing */ - pre.synopsis - { - border: 1px solid gray; - } - - .programlisting, - .screen - { - border: 1px solid gray; - } - - td .programlisting, - td .screen - { - border: 0px solid #DCDCDC; - } - - /* Table of contents */ - .toc - { - border: 1px solid gray; - } - - .informaltable table, - .table table - { - border: 1px solid gray; - border-collapse: collapse; - } - - /* Tables */ - div.informaltable table tr td, - div.table table tr td - { - border: 1px solid gray; - } - - div.informaltable table tr th, - div.table table tr th - { - border: 1px solid gray; - } - - /* Misc */ - span.highlight - { - font-weight: bold; - } - } diff --git a/factory/doc/html/index.html b/factory/doc/html/index.html index 93ce15f..83a3266 100644 --- a/factory/doc/html/index.html +++ b/factory/doc/html/index.html @@ -1,598 +1,16 @@ + - - -Chapter 1. Boost.Functional/Factory 1.0 - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-
-
-

-Chapter 1. Boost.Functional/Factory 1.0

-

-Tobias Schwinger -

-
-
-

- 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) -

-
-
- -
- -

- The template boost::factory lets you encapsulate a new expression as a function object, boost::value_factory - encapsulates a constructor invocation without new. -

-
boost::factory<T*>()(arg1,arg2,arg3) 
-// same as new T(arg1,arg2,arg3)
-
-boost::value_factory<T>()(arg1,arg2,arg3)
-// same as T(arg1,arg2,arg3)
-
-

- For technical reasons the arguments to the function objects have to be LValues. - A factory that also accepts RValues can be composed using the boost::forward_adapter - or boost::bind. -

-
-
- -

- In traditional Object Oriented Programming a Factory is an object implementing - an interface of one or more methods that construct objects conforming to known - interfaces. -

-
// assuming a_concrete_class and another_concrete_class are derived
-// from an_abstract_class
-
-class a_factory
-{
-  public:
-    virtual an_abstract_class* create() const = 0;
-    virtual ~a_factory() { }
-};
+  
+  
+    Redirect to generated documentation
+    
+  
+  
+    Automatic redirection failed, please go to
+    http://boost-sandbox.sourceforge.net/libs/functional/factory/doc/html/
+  
 
diff --git a/forward/doc/html/boostbook.css b/forward/doc/html/boostbook.css
deleted file mode 100644
index 858d43c..0000000
--- a/forward/doc/html/boostbook.css
+++ /dev/null
@@ -1,528 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2004 Joel de Guzman
-    http://spirit.sourceforge.net/
-
-    Use, modification and distribution is subject to 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 defaults
-=============================================================================*/
-
-    body
-    {
-        margin: 1em;
-        font-family: sans-serif;
-    }
-
-/*=============================================================================
-    Paragraphs
-=============================================================================*/
-
-    p
-    {
-        text-align: left;
-        font-size: 10pt;
-        line-height: 1.15;
-    }
-
-/*=============================================================================
-    Program listings
-=============================================================================*/
-
-    /* Code on paragraphs */
-    p tt.computeroutput
-    {
-        font-size: 9pt;
-    }
-
-    pre.synopsis
-    {
-        font-size: 90%;
-        margin: 1pc 4% 0pc 4%;
-        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
-    }
-
-    .programlisting,
-    .screen
-    {
-        font-size: 9pt;
-        display: block;
-        margin: 1pc 4% 0pc 4%;
-        padding: 0.5pc 0.5pc 0.5pc 0.5pc;
-    }
-
-    /* Program listings in tables don't get borders */
-    td .programlisting,
-    td .screen
-    {
-        margin: 0pc 0pc 0pc 0pc;
-        padding:  0pc 0pc 0pc 0pc;
-    }
-
-/*=============================================================================
-    Headings
-=============================================================================*/
-
-    h1, h2, h3, h4, h5, h6
-    {
-        text-align: left;
-        margin: 1em 0em 0.5em 0em;
-        font-weight: bold;
-    }
-
-    h1 { font: 140% }
-    h2 { font: bold 140% }
-    h3 { font: bold 130% }
-    h4 { font: bold 120% }
-    h5 { font: italic 110% }
-    h6 { font: italic 100% }
-
-    /* Top page titles */
-    title,
-    h1.title,
-    h2.title
-    h3.title,
-    h4.title,
-    h5.title,
-    h6.title,
-    .refentrytitle
-    {
-        font-weight: bold;
-        margin-bottom: 1pc;
-    }
-
-    h1.title { font-size: 140% }
-    h2.title { font-size: 140% }
-    h3.title { font-size: 130% }
-    h4.title { font-size: 120% }
-    h5.title { font-size: 110% }
-    h6.title { font-size: 100% }
-
-    .section h1
-    {
-        margin: 0em 0em 0.5em 0em;
-        font-size: 140%;
-    }
-
-    .section h2 { font-size: 140% }
-    .section h3 { font-size: 130% }
-    .section h4 { font-size: 120% }
-    .section h5 { font-size: 110% }
-    .section h6 { font-size: 100% }
-
-    /* Code on titles */
-    h1 tt.computeroutput { font-size: 140% }
-    h2 tt.computeroutput { font-size: 140% }
-    h3 tt.computeroutput { font-size: 130% }
-    h4 tt.computeroutput { font-size: 120% }
-    h5 tt.computeroutput { font-size: 110% }
-    h6 tt.computeroutput { font-size: 100% }
-
-/*=============================================================================
-    Author
-=============================================================================*/
-
-    h3.author
-    {
-        font-size: 100%
-    }
-
-/*=============================================================================
-    Lists
-=============================================================================*/
-
-    li
-    {
-        font-size: 10pt;
-        line-height: 1.3;
-    }
-
-    /* Unordered lists */
-    ul
-    {
-        text-align: left;
-    }
-
-    /* Ordered lists */
-    ol
-    {
-        text-align: left;
-    }
-
-/*=============================================================================
-    Links
-=============================================================================*/
-
-    a
-    {
-        text-decoration: none; /* no underline */
-    }
-
-    a:hover
-    {
-        text-decoration: underline;
-    }
-
-/*=============================================================================
-    Spirit style navigation
-=============================================================================*/
-
-    .spirit-nav
-    {
-        text-align: right;
-    }
-
-    .spirit-nav a
-    {
-        color: white;
-        padding-left: 0.5em;
-    }
-
-    .spirit-nav img
-    {
-        border-width: 0px;
-    }
-
-/*=============================================================================
-    Table of contents
-=============================================================================*/
-
-    .toc
-    {
-       margin: 1pc 4% 0pc 4%;
-       padding: 0.1pc 1pc 0.1pc 1pc;
-       font-size: 80%;
-       line-height: 1.15;
-    }
-
-    .boost-toc
-    {
-       float: right;
-       padding: 0.5pc;
-    }
-
-/*=============================================================================
-    Tables
-=============================================================================*/
-
-    .table-title,
-    div.table p.title
-    {
-        margin-left: 4%;
-        padding-right: 0.5em;
-        padding-left: 0.5em;
-    }
-
-    .informaltable table,
-    .table table
-    {
-        width: 92%;
-        margin-left: 4%;
-        margin-right: 4%;
-    }
-
-    div.informaltable table,
-    div.table table
-    {
-        padding: 4px;
-    }
-
-    /* Table Cells */
-    div.informaltable table tr td,
-    div.table table tr td
-    {
-        padding: 0.5em;
-        text-align: left;
-        font-size: 9pt;
-    }
-
-    div.informaltable table tr th,
-    div.table table tr th
-    {
-        padding: 0.5em 0.5em 0.5em 0.5em;
-        border: 1pt solid white;
-        font-size: 80%;
-    }
-
-/*=============================================================================
-    Blurbs
-=============================================================================*/
-
-    div.note,
-    div.tip,
-    div.important,
-    div.caution,
-    div.warning,
-    div.sidebar
-    {
-        font-size: 9pt; /* A little bit smaller than the main text */
-        line-height: 1.2;
-        display: block;
-        margin: 1pc 4% 0pc 4%;
-        padding: 0.5pc 0.5pc 0.0pc 0.5pc;
-    }
-
-    div.sidebar img
-    {
-        padding: 1pt;
-    }
-
-/*=============================================================================
-    Callouts
-=============================================================================*/
-    .line_callout_bug img
-    {
-        float: left;
-        position:relative;
-        left: 4px;
-        top: -12px;
-        clear: left;
-        margin-left:-22px;
-    }
-
-    .callout_bug img
-    {
-    }
-
-/*=============================================================================
-    Variable Lists
-=============================================================================*/
-
-    /* Make the terms in definition lists bold */
-    div.variablelist dl dt,
-    span.term
-    {
-        font-weight: bold;
-        font-size: 10pt;
-    }
-
-    div.variablelist table tbody tr td
-    {
-        text-align: left;
-        vertical-align: top;
-        padding: 0em 2em 0em 0em;
-        font-size: 10pt;
-        margin: 0em 0em 0.5em 0em;
-        line-height: 1;
-    }
-
-    div.variablelist dl dt
-    {
-        margin-bottom: 0.2em;
-    }
-
-    div.variablelist dl dd
-    {
-        margin: 0em 0em 0.5em 2em;
-        font-size: 10pt;
-    }
-
-    div.variablelist table tbody tr td p,
-    div.variablelist dl dd p
-    {
-        margin: 0em 0em 0.5em 0em;
-        line-height: 1;
-    }
-
-/*=============================================================================
-    Misc
-=============================================================================*/
-
-    /* Title of books and articles in bibliographies */
-    span.title
-    {
-        font-style: italic;
-    }
-
-    span.underline
-    {
-        text-decoration: underline;
-    }
-
-    span.strikethrough
-    {
-        text-decoration: line-through;
-    }
-
-    /* Copyright, Legal Notice */
-    div div.legalnotice p
-    {
-        text-align: left
-    }
-
-/*=============================================================================
-    Colors
-=============================================================================*/
-
-    @media screen
-    {
-    /* Links */
-        a
-        {
-            color: #005a9c;
-        }
-
-        a:visited
-        {
-            color: #9c5a9c;
-        }
-
-        h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
-        h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
-        h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
-        {
-            text-decoration: none; /* no underline */
-            color: #000000;
-        }
-
-    /* Syntax Highlighting */
-        .keyword        { color: #0000AA; }
-        .identifier     { color: #000000; }
-        .special        { color: #707070; }
-        .preprocessor   { color: #402080; }
-        .char           { color: teal; }
-        .comment        { color: #800000; }
-        .string         { color: teal; }
-        .number         { color: teal; }
-        .white_bkd      { background-color: #FFFFFF; }
-        .dk_grey_bkd    { background-color: #999999; }
-
-    /* Copyright, Legal Notice */
-        .copyright
-        {
-            color: #666666;
-            font-size: small;
-        }
-
-        div div.legalnotice p
-        {
-            color: #666666;
-        }
-
-    /* Program listing */
-        pre.synopsis
-        {
-            border: 1px solid #DCDCDC;
-        }
-
-        .programlisting,
-        .screen
-        {
-            border: 1px solid #DCDCDC;
-        }
-
-        td .programlisting,
-        td .screen
-        {
-            border: 0px solid #DCDCDC;
-        }
-
-    /* Blurbs */
-        div.note,
-        div.tip,
-        div.important,
-        div.caution,
-        div.warning,
-        div.sidebar
-        {
-            border: 1px solid #DCDCDC;
-        }
-
-    /* Table of contents */
-        .toc
-        {
-            border: 1px solid #DCDCDC;
-        }
-
-    /* Tables */
-        div.informaltable table tr td,
-        div.table table tr td
-        {
-            border: 1px solid #DCDCDC;
-        }
-
-        div.informaltable table tr th,
-        div.table table tr th
-        {
-            background-color: #F0F0F0;
-            border: 1px solid #DCDCDC;
-        }
-
-    /* Misc */
-        span.highlight
-        {
-            color: #00A000;
-        }
-    }
-
-    @media print
-    {
-    /* Links */
-        a
-        {
-            color: black;
-        }
-
-        a:visited
-        {
-            color: black;
-        }
-
-        .spirit-nav
-        {
-            display: none;
-        }
-
-    /* Program listing */
-        pre.synopsis
-        {
-            border: 1px solid gray;
-        }
-
-        .programlisting,
-        .screen
-        {
-            border: 1px solid gray;
-        }
-
-        td .programlisting,
-        td .screen
-        {
-            border: 0px solid #DCDCDC;
-        }
-
-    /* Table of contents */
-        .toc
-        {
-            border: 1px solid gray;
-        }
-
-        .informaltable table,
-        .table table
-        {
-            border: 1px solid gray;
-            border-collapse: collapse;
-        }
-
-    /* Tables */
-        div.informaltable table tr td,
-        div.table table tr td
-        {
-            border: 1px solid gray;
-        }
-
-        div.informaltable table tr th,
-        div.table table tr th
-        {
-            border: 1px solid gray;
-        }
-
-    /* Misc */
-        span.highlight
-        {
-            font-weight: bold;
-        }
-    }
diff --git a/forward/doc/html/index.html b/forward/doc/html/index.html
index e82fe81..0e7fad9 100644
--- a/forward/doc/html/index.html
+++ b/forward/doc/html/index.html
@@ -1,564 +1,16 @@
+
 
-
-
-Chapter 1. Boost.Functional/Forward 1.0
-
-
-
-
-
-
-
-
-
-
-
-
-
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-
-
-

-Chapter 1. Boost.Functional/Forward 1.0

-

-Tobias Schwinger -

-
-
-

- 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) -

-
-
- -
- -

- boost::forward_adapter provides a reusable adapter - template for function objects. It forwards RValues as references to const, - while leaving LValues as-is. -

-
struct g // function object that only accept LValues
-{
-    template< typename T0, typename T1, typename T2 >
-    void operator()(T0 & t0, T1 & t1, T2 & t2) const;
+  
+  
+    Redirect to generated documentation
+    
+  
+  
+    Automatic redirection failed, please go to
+    http://boost-sandbox.sourceforge.net/libs/functional/forward/doc/html/
+  
 
diff --git a/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html b/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html
index b59ac5a..4baf1a8 100644
--- a/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html
+++ b/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html
@@ -33,9 +33,9 @@
 
 BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX
-

Description

+

Description

If this macro is left undefined by the user, it has a default value of 5 (increasing this number might increase compilation time). When specified by the user, this macro must be a non-negative integer number.

-

See: Getting Started, boost::overloaded_function.

+

See: Getting Started, boost::overloaded_function.

diff --git a/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html b/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html index 9db47e1..3ebb559 100644 --- a/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html +++ b/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html @@ -7,7 +7,7 @@ - +
@@ -20,7 +20,7 @@

-PrevUpHomeNext +PrevUpHomeNext
@@ -33,9 +33,9 @@ BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX
-

Description

+

Description

If this macro is left undefined by the user, it has a default value of 5 (increasing this number might increase compilation time). When defined by the user, this macro must be an integer number greater or equal than 2 (because at least two distinct functions need to be specified in order to define an overload).

-

See: Getting Started, boost::overloaded_function.

+

See: Getting Started, boost::overloaded_function.

@@ -48,7 +48,7 @@

-PrevUpHomeNext +PrevUpHomeNext
diff --git a/overloaded_function/doc/html/boost/make_overloaded_function.html b/overloaded_function/doc/html/boost/make_overloaded_function.html index 998264b..21f5f39 100644 --- a/overloaded_function/doc/html/boost/make_overloaded_function.html +++ b/overloaded_function/doc/html/boost/make_overloaded_function.html @@ -36,12 +36,12 @@ overloaded_function< __function_type__< F1 >, __function_type__< F2 >,...> make_overloaded_function(F1 f1, F2 f2, ...);
-

Description

+

Description

This function template creates and returns an overloaded_function object that overloads all the specified functions f1, f2, etc.

-

The function types are internally determined from the template parameter types so they do not need to be explicitly specified. Therefore, this function template usually has a more concise syntax when compared with overloaded_function. This is especially useful when the explicit type of the returned overloaded_function object does not need to be known (e.g., when used with Boost.Typeof's BOOST_AUTO, C++11 auto, or when the overloaded function object is handled using a function template parameter, see the Tutorial section).

+

The function types are internally determined from the template parameter types so they do not need to be explicitly specified. Therefore, this function template usually has a more concise syntax when compared with overloaded_function. This is especially useful when the explicit type of the returned overloaded_function object does not need to be known (e.g., when used with Boost.Typeof's BOOST_AUTO, C++11 auto, or when the overloaded function object is handled using a function template parameter, see the Tutorial section).

The maximum number of functions to overload is given by the BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX configuration macro.

Note: In this documentation, __function_type__ is a placeholder for a symbol that is specific to the implementation of this library.

-

See: Tutorial section, overloaded_function, BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.

+

See: Tutorial section, overloaded_function, BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.

diff --git a/overloaded_function/doc/html/boost/overloaded_function.html b/overloaded_function/doc/html/boost/overloaded_function.html index 7421832..c8c600f 100644 --- a/overloaded_function/doc/html/boost/overloaded_function.html +++ b/overloaded_function/doc/html/boost/overloaded_function.html @@ -35,19 +35,19 @@ classoverloaded_function{public:// construct/copy/destruct - overloaded_function(constboost::function<F1>&, + overloaded_function(constboost::function<F1>&,constboost::function<F2>&,...); - // public member functions + // public member functionsboost::function_traits<F1>::result_type - operator()(typenameboost::function_traits<F1>::arg1_type, + operator()(typenameboost::function_traits<F1>::arg1_type,typenameboost::function_traits<F1>::arg2_type,...)const;boost::function_traits<F2>::result_type - operator()(typenameboost::function_traits<F2>::arg1_type, + operator()(typenameboost::function_traits<F2>::arg1_type,typenameboost::function_traits<F2>::arg2_type,...)const;};
-

Description

+

Description

This function object aggregates together calls to functions of all the specified function types F1, F2, etc which must have distinct function signatures from one another.

Parameters:

@@ -65,30 +65,30 @@

In some cases, the make_overloaded_function function template can be useful to construct an overloaded function object without explicitly specifying the function types.

At least two distinct function types must be specified (because there is nothing to overload between one or zero functions). The maximum number of functions to overload is given by the BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX configuration macro. The maximum number of function parameters for each of the specified function types is given by the BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX configuration macro.

-

See: Tutorial section, make_overloaded_function, BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX, BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX, Boost.Function.

+

See: Tutorial section, make_overloaded_function, BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX, BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX, Boost.Function.

-

+

overloaded_function public construct/copy/destruct

  1. -
    overloaded_function(const boost::function< F1 > &, 
    +
    overloaded_function(const boost::function< F1 > &, 
                         const boost::function< F2 > &, ...);
    Construct the overloaded function object.

    Any function pointer, function reference, and monomorphic function object that can be converted to a boost::function function object can be specified as parameter.

    Note: Unfortunately, it is not possible to support polymorphic function objects (as explained here).

-

-overloaded_function public member functions

+

+overloaded_function public member functions

  1. boost::function_traits< F1 >::result_type 
    -operator()(typename boost::function_traits< F1 >::arg1_type, 
    +operator()(typename boost::function_traits< F1 >::arg1_type, 
                typename boost::function_traits< F1 >::arg2_type, ...) const;
    Call operator matching the signature of the function type specified as 1st template parameter.

    This will in turn invoke the call operator of the 1st function passed to the constructor.

  2. boost::function_traits< F2 >::result_type 
    -operator()(typename boost::function_traits< F2 >::arg1_type, 
    +operator()(typename boost::function_traits< F2 >::arg1_type, 
                typename boost::function_traits< F2 >::arg2_type, ...) const;
    Call operator matching the signature of the function type specified as 2nd template parameter.

    This will in turn invoke the call operator of the 2nd function passed to the constructor.

    Note: Similar call operators are present for all specified function types F1, F2, etc (even if not exhaustively listed by this documentation).

  3. diff --git a/overloaded_function/doc/html/boost_functional_overloadedfunction/Acknowledgments.html b/overloaded_function/doc/html/boost_functional_overloadedfunction/acknowledgments.html similarity index 95% rename from overloaded_function/doc/html/boost_functional_overloadedfunction/Acknowledgments.html rename to overloaded_function/doc/html/boost_functional_overloadedfunction/acknowledgments.html index f03dd92..605d481 100644 --- a/overloaded_function/doc/html/boost_functional_overloadedfunction/Acknowledgments.html +++ b/overloaded_function/doc/html/boost_functional_overloadedfunction/acknowledgments.html @@ -21,9 +21,9 @@
    PrevUpHome
    -
    +

    Many thanks to Mathias Gaunard for suggesting to implement boost::overloaded_function diff --git a/overloaded_function/doc/html/boost_functional_overloadedfunction/Getting_Started.html b/overloaded_function/doc/html/boost_functional_overloadedfunction/getting_started.html similarity index 82% rename from overloaded_function/doc/html/boost_functional_overloadedfunction/Getting_Started.html rename to overloaded_function/doc/html/boost_functional_overloadedfunction/getting_started.html index 6ac82c8..459e7d5 100644 --- a/overloaded_function/doc/html/boost_functional_overloadedfunction/Getting_Started.html +++ b/overloaded_function/doc/html/boost_functional_overloadedfunction/getting_started.html @@ -7,7 +7,7 @@ - +

@@ -20,24 +20,24 @@

-PrevUpHomeNext +PrevUpHomeNext
-
+

This section explains how to setup a system to use this library.

-
+

@@ -60,9 +60,9 @@ for any special configuration that might be required for a specific compiler.

-
+

This library is composed of header files only. Therefore there is no pre-compiled @@ -89,7 +89,7 @@


-PrevUpHomeNext +PrevUpHomeNext
diff --git a/overloaded_function/doc/html/boost_functional_overloadedfunction/Tutorial.html b/overloaded_function/doc/html/boost_functional_overloadedfunction/tutorial.html similarity index 93% rename from overloaded_function/doc/html/boost_functional_overloadedfunction/Tutorial.html rename to overloaded_function/doc/html/boost_functional_overloadedfunction/tutorial.html index 8211939..98493ac 100644 --- a/overloaded_function/doc/html/boost_functional_overloadedfunction/Tutorial.html +++ b/overloaded_function/doc/html/boost_functional_overloadedfunction/tutorial.html @@ -6,7 +6,7 @@ - + @@ -20,23 +20,23 @@
-PrevUpHomeNext +PrevUpHomeNext
-
+

This section explains how to use this library.

-
+

Consider the following functions which have distinct signatures: @@ -87,7 +87,7 @@

Then the relative function pointers, function references, or monomorphic function objects are passed to the boost::overloaded_function - constructor matching the order of the specified template parameters. [2] In the above example, identity_s + constructor matching the order of the specified template parameters. [2] In the above example, identity_s is passed as a function pointer (the function address is automatically taken from the function name by the compiler), identity_i as a function reference, and identity_d @@ -95,14 +95,14 @@

All specified function types must have distinct parameters from one another - (so the overloaded calls can be resolved by this library). [3] In order to create an overloaded function object, it is necessary + (so the overloaded calls can be resolved by this library). [3] In order to create an overloaded function object, it is necessary to specify at least two function types (because there is nothing to overload between one or zero functions).

-
+

@@ -189,7 +189,7 @@



-

[2] +

[2] Function pointers are of the form result-type (*)(argument1-type, ...) (the C++ compiler is usually able to automatically promote a function name to a function pointer in a context where a function pointer is expected even @@ -204,7 +204,7 @@ Unfortunately, it is not possible to support polymorphic function objects (see http://lists.boost.org/Archives/boost/2012/03/191744.php).

-

[3] +

[3] Note that in C++ the function result type is not used for overload resolution (to avoid making the overload resolution context dependent). Therefore, at least one of the function parameters must be distinct for each specified @@ -222,7 +222,7 @@


-PrevUpHomeNext +PrevUpHomeNext
diff --git a/overloaded_function/doc/html/index.html b/overloaded_function/doc/html/index.html index c9f1f8d..5e6c0e9 100644 --- a/overloaded_function/doc/html/index.html +++ b/overloaded_function/doc/html/index.html @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@
More

-
Next
+
Next

@@ -36,18 +36,18 @@

This library allows to overload different functions into a single function object.

-
+

Consider the following functions which have distinct signatures: @@ -84,7 +84,7 @@

Instead of calling them using their separate names (here BOOST_TEST is equivalent to assert): - [1] + [1]

@@ -125,7 +125,7 @@


-

[1] +

[1] In most of the examples presented in this documentation, the Boost.Detail/LightweightTest (boost/detail/lightweight_test.hpp) macro BOOST_TEST is used to check correctness conditions (conceptually similar to assert). @@ -138,10 +138,10 @@

- +

Last revised: April 13, 2012 at 00:59:44 GMT

Last revised: April 28, 2012 at 02:19:13 GMT


-
Next
+
Next
diff --git a/overloaded_function/doc/html/reference.html b/overloaded_function/doc/html/reference.html index 3fcf6f5..55a89f0 100644 --- a/overloaded_function/doc/html/reference.html +++ b/overloaded_function/doc/html/reference.html @@ -6,7 +6,7 @@ - + @@ -20,7 +20,7 @@
-PrevUpHomeNext +PrevUpHomeNext

@@ -60,7 +60,7 @@
-PrevUpHomeNext +PrevUpHomeNext