diff --git a/doc/ref/Acknowledgements.html b/doc/ref/Acknowledgements.html index 053666a..5a3cbeb 100644 --- a/doc/ref/Acknowledgements.html +++ b/doc/ref/Acknowledgements.html @@ -2,6 +2,6 @@ boost::mpl::Acknowledgements -

[Home]Acknowledgements

The format and language of this reference documentation has been greatly influenced by the SGI's [Standard Template Library Programmer's Guide]. +

[Home]Acknowledgements

The format and language of this reference documentation has been greatly influenced by the SGI's Standard Template Library Programmer's Guide.


Table of Contents
Last edited July 17, 2002 9:04 am \ No newline at end of file diff --git a/doc/ref/Associative_Sequence.html b/doc/ref/Associative_Sequence.html new file mode 100644 index 0000000..50b8ad6 --- /dev/null +++ b/doc/ref/Associative_Sequence.html @@ -0,0 +1,58 @@ + +boost::mpl::Associative Sequence + + +

[Home]Associative Sequence

Description

+

+An Associative Sequence is a Sequence which allows efficient retrieval of elements based on keys. For some of associative sequences such as set it is guaranteed that no two elements have the same key. Others, such as multiset, allow multiple elements with the same key. +

+

Refinement of

+

+Sequence +

+

Valid expressions

+

+In addition to Sequence's expressions the following expressions are valid. +

+ + + + + + + +
 Expression  Expression type  
has_key<s,k>::typeA model of boolean Integral Constant
count<s,k>::typeA model of Integral Constant
order<s,k>::typeA model of Integral Constant or void_
at<s,k>::typeA type
at<s,k,default>::typeA type
+

+

Expression semantics

+

+ + + + + + +
 Expression  Complexity  Precondition  Semantics  Postcondition  
has_key<s,k>::typeAmortized constant time
count<s,k>::typeAmortized constant time
order<s,k>::typeAmortized constant time
at<s,k>::typeAmortized constant time
+

+

+

Invariants

+

+For any associative sequence s the following invariants always hold: +

+

+

Models

+

+

+

+

Notes

+

+

See also

+

+Sequences, Forward Sequence, Extensible Associative Sequence, +


+Table of Contents
Last edited October 25, 2003 7:40 am \ No newline at end of file diff --git a/doc/ref/Extensible_Associative_Sequence.html b/doc/ref/Extensible_Associative_Sequence.html new file mode 100644 index 0000000..281ef4d --- /dev/null +++ b/doc/ref/Extensible_Associative_Sequence.html @@ -0,0 +1,47 @@ + +boost::mpl::Extensible Associative Sequence + + +

[Home]Extensible Associative Sequence

Description

+

+An Extensible Associative Sequence is an Associative Sequence that supports insertion and removal of elements. In contrast to Extensible Sequence, Extensible Associative Sequence does not provide a mechanism for inserting an element at a specific position. +

+Refinement of +

+Associative Sequence +

+

Valid expressions

+

+ + + + + +
 Expression  Expression type  
typename clear<s>::typeA model of concept of s
typename insert<s,t>::typeA model of concept of s
typename remove<s,k>::typeA model of concept of s
+

+

Expression semantics

+

+TODO. +

+

Invariants

+

+For any associative sequence s the following invariants always hold: +

+

+

Models

+

+

+

+

Notes

+

+

See also

+

+Sequences, Forward Sequence, Associative Sequence +


+Table of Contents
Last edited May 2, 2003 8:24 am \ No newline at end of file diff --git a/doc/ref/Extensible_Sequence.html b/doc/ref/Extensible_Sequence.html index 36a35f4..59010d5 100644 --- a/doc/ref/Extensible_Sequence.html +++ b/doc/ref/Extensible_Sequence.html @@ -15,7 +15,7 @@ An Extensible Sequence is either a Forward Seq - +
 Expression  Expression type  
typename clear<s>::typeA model of concept of s
typename insert<s,pos,T>::typeA model of concept of s
typename insert<s,pos,t>::typeA model of concept of s
typename erase<s,pos>::typeA model of concept of s
typename erase<s,first,last>::typeA model of concept of s
@@ -37,4 +37,4 @@ See the description of
clear, Sequences, clear, insert, erase


-Table of Contents
Last edited July 16, 2002 6:27 pm \ No newline at end of file +Table of Contents
Last edited May 2, 2003 4:54 am \ No newline at end of file diff --git a/doc/ref/Input_Iterator.html b/doc/ref/Input_Iterator.html index 38b7616..41bfcc9 100644 --- a/doc/ref/Input_Iterator.html +++ b/doc/ref/Input_Iterator.html @@ -16,7 +16,7 @@ An Input Iterator is a Trivial Iterator th
  • an input iterator is past-the-end if it points beyond the last element of a sequence; past-the-end iterators are non-dereferenceable;
  • an input iterator is valid if it is dereferenceable or past-the-end;
  • an input iterator i is incrementable if there is a "next" iterator, that is, if i::next expression is well-defined; past-the-end iterators are not incrementable; -
  • an input iterator j is reachable from a forward iterator i if, after recursive application of next operation to i a finite number of times, i is identical to j; +
  • an input iterator j is reachable from an input iterator i if, after recursive application of next operation to i a finite number of times, i is identical to j;
  • the notation [i,j) refers to a range of iterators beginning with i and up to but not including j;
  • the range [i,j) is a valid range if both i and j are valid iterators, and j is reachable from i. @@ -41,4 +41,4 @@ In addition to the expressions defined in Triv

    Sequence, Trivial Iterator, Forward Iterator


    -Table of Contents
    Last edited July 15, 2002 10:48 am \ No newline at end of file +Table of Contents
    Last edited April 21, 2003 4:14 pm \ No newline at end of file diff --git a/doc/ref/Macros.html b/doc/ref/Macros.html new file mode 100644 index 0000000..1fcf851 --- /dev/null +++ b/doc/ref/Macros.html @@ -0,0 +1,24 @@ + +boost::mpl::Macros + + +

    [Home]Macros

    Introspection

    + +

    +

    Configuration

    + +

    +

    Broken compilers workarounds

    + +


    +Table of Contents
    Last edited November 12, 2003 1:35 am \ No newline at end of file diff --git a/doc/ref/Rational_Constant.html b/doc/ref/Rational_Constant.html new file mode 100644 index 0000000..ae84658 --- /dev/null +++ b/doc/ref/Rational_Constant.html @@ -0,0 +1,37 @@ + +boost::mpl::Rational Constant + + +

    [Home]Rational Constant

    Description

    +

    +A Rational Constant is a class representing the ration of two values of a built-in integral type (bool, int, long, etc.) in compile-time programs. A rational constant directly supports access to the numerator +and denominator. Other arithmetic operations are supported through the external metafunctions. A rational constant is always stored in simplified form. +

    +

    Valid expressions

    +

    + + + + + + + +
     Expression  Return type  
    typename n::integer_typeAn integral type
    typename n::typeA model of Rational Constant
    typename n::numeratorA model of Integral Constant representing the numerator
    typename n::denominatorA model of Integral Constant representing the denominator
    n::value()A run-time floating point approximation of n::type
    +

    +

    Expression semantics

    +

    + + +
     Expression  Complexity  Precondition  Semantics  Postcondition  
    +

    +

    Models

    +

    +

    +

    +

    See also

    +

    +Integral Constant, rational_c +


    +Table of Contents
    Last edited October 30, 2003 2:43 am \ No newline at end of file diff --git a/doc/ref/Reference/BOOST_MPL_AUX_LAMBDA_SUPPORT.html b/doc/ref/Reference/BOOST_MPL_AUX_LAMBDA_SUPPORT.html new file mode 100644 index 0000000..2486040 --- /dev/null +++ b/doc/ref/Reference/BOOST_MPL_AUX_LAMBDA_SUPPORT.html @@ -0,0 +1,50 @@ + +boost::mpl::BOOST_MPL_AUX_LAMBDA_SUPPORT + + +

    [Home]BOOST_MPL_AUX_LAMBDA_SUPPORT

    Synopsis

    +

    +

    +#define BOOST_MPL_AUX_LAMBDA_SUPPORT(arity, fun, params) \
    +    unspecified token sequence \
    +/**/
    +
    +

    +

    Description

    +

    +Broken compiler workaround macro, enables metafunction fun for the use in lambda expressions on compilers that don't support partial template specialization or/and template template parameters. Expands to nothing on conforming compilers. +

    +

    Definition

    +

    +

    +#include "boost/mpl/aux_/lambda_support.hpp"
    +
    +

    +

    Parameters

    + + + + + +
     Parameter  Description  
    arityThe metafunction's arity, i.e. the number of its template parameters, including the defaults.
    funThe metafunction's name.
    paramsPP-tuple of the metafunction's parameter names, in their original order.
    +

    +

    Example

    +

    +

    +template< typename T, typename U = int > struct f
    +{
    +    typedef T type[sizeof(U)];
    +

    + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,f,(T,U)) +}; +

    +typedef lambda< f<char,_1> >::type f_; // use f in a lambda expression +typedef apply1<f_,long>::type res; +BOOST_MPL_ASSERT_IS_SAME(res, char[sizeof(long)]); +

    +

    +

    See also

    +

    +Macros +


    +Table of Contents
    Last edited November 12, 2003 1:29 am \ No newline at end of file diff --git a/doc/ref/Reference/and.html b/doc/ref/Reference/and.html index c407989..33ff42b 100644 --- a/doc/ref/Reference/and.html +++ b/doc/ref/Reference/and.html @@ -38,7 +38,7 @@ Returns the result of short-circuit logical and (&& - +
     Expression  Expression type  Precondition  Semantics  Postcondition 
    typedef and_<f1,f2,..,fn>::type c;A model of bool Integral ConstantReturns false_ if either of f1::type::value, f2::type::value, .., fn::type::value expressions evaluates to false, and true_ otherwise; guarantees left-to-right evaluation; moreover, the operands subsequent to the first fi metafunction that evaluates to false are not evaluated.
    and_<f1,f2,..,fn>A model of bool Integral Constantfalse_ if either of f1::type::value, f2::type::value, .., fn::type::value expressions evaluates to false, and true_ otherwise; guarantees left-to-right evaluation; moreover, the operands subsequent to the first fi metafunction that evaluates to false are not evaluated.

    Example

    @@ -50,13 +50,13 @@ template< typename T > struct fail typedef typename T::nonexistent type; };

    -BOOST_STATIC_ASSERT((and_< true_,false_ >::type::value == false)); -BOOST_STATIC_ASSERT((and_< false_,fail<int> >::type::value == false)); // OK, fail<int> is never invoked -BOOST_STATIC_ASSERT((and_< true_,false_,fail<int> >::type::value == false)); // OK too +BOOST_STATIC_ASSERT((and_< true_,false_ >::value == false)); +BOOST_STATIC_ASSERT((and_< false_,fail<int> >::value == false)); // OK, fail<int> is never invoked +BOOST_STATIC_ASSERT((and_< true_,false_,fail<int> >::value == false)); // OK too

    See also

    Metafunctions, or_, not_


    -Table of Contents
    Last edited March 10, 2003 1:21 am \ No newline at end of file +Table of Contents
    Last edited September 6, 2003 3:13 am \ No newline at end of file diff --git a/doc/ref/Reference/copy.html b/doc/ref/Reference/copy.html index 267490f..1bb52fd 100644 --- a/doc/ref/Reference/copy.html +++ b/doc/ref/Reference/copy.html @@ -51,8 +51,8 @@ Linear. Exactly size<Sequence>: typedef vector_c<int,0,1,2,3,4,5,6,7,8,9> numbers; typedef copy< range_c<int,10,20> - , push_back<_,_> , numbers + , push_back<_,_> >::type result;

    BOOST_STATIC_ASSERT(size<result>::value == 20); @@ -67,4 +67,4 @@ BOOST_STATIC_ASSERT((equal< result, Algorithms, copy_if, copy_backward, copy_backward_if, fold, fold_backward


    -Table of Contents
    Last edited July 19, 2002 2:10 am \ No newline at end of file +Table of Contents
    Last edited May 20, 2003 1:36 am \ No newline at end of file diff --git a/doc/ref/Reference/is_sequence.html b/doc/ref/Reference/is_sequence.html new file mode 100644 index 0000000..88cb53b --- /dev/null +++ b/doc/ref/Reference/is_sequence.html @@ -0,0 +1,59 @@ + +boost::mpl::is_sequence + + +

    [Home]is_sequence

    Synopsis

    +

    +

    +template<
    +      typename T
    +    >
    +struct is_sequence
    +{
    +    typedef unspecified type;
    +};
    +
    +

    +

    Description

    +

    +Returns an Integral Constant c such that c::value == true if and only if T is a model of Sequence. +

    +

    Definition

    +

    +

    +#include "boost/mpl/is_sequence.hpp"
    +
    +

    +

    Parameters

    + + + +
     Parameter  Requirement  Description  
    TA type
    +

    +

    Expression semantics

    +

    + + + +
     Expression  Expression type  Precondition  Semantics  Postcondition 
    typedef is_sequence<T>::type c;A model of bool Integral ConstantEquivalent to typedef not_< is_same< begin<T>::type,void_ > >::type c;
    +

    +

    +

    Complexity

    +

    +Amortized constant time. +

    +

    Example

    +

    +

    +struct UDT {};
    +BOOST_STATIC_ASSERT( !is_sequence<int>::value );
    +BOOST_STATIC_ASSERT( !is_sequence<UDT>::value );
    +BOOST_STATIC_ASSERT( is_sequence< list<> >::value );
    +BOOST_STATIC_ASSERT( is_sequence< vector<> >::value );
    +
    +

    +

    See also

    +

    +Sequence, begin, end, as_sequence +


    +Table of Contents
    Last edited July 1, 2003 4:08 pm \ No newline at end of file diff --git a/doc/ref/Reference/not.html b/doc/ref/Reference/not.html index f16ccbf..696e683 100644 --- a/doc/ref/Reference/not.html +++ b/doc/ref/Reference/not.html @@ -34,18 +34,18 @@ Returns the result of logical not (!) operation on its arg

    - +
     Expression  Expression type  Precondition  Semantics  Postcondition 
    typedef not_<f>::type c;A model of bool Integral ConstantEquivalent to typedef bool_<(!f::type::value)> c;
    not_<f>A model of bool Integral ConstantEquivalent to bool_<(!f::type::value)>

    Example

    -BOOST_STATIC_ASSERT(not_<true_>::type::value == false);
    -BOOST_STATIC_ASSERT(not_<false_>::type::value == true);
    +BOOST_STATIC_ASSERT(not_<true_>::value == false);
    +BOOST_STATIC_ASSERT(not_<false_>::value == true);
     

    See also

    Metafunctions, and_, or_


    -Table of Contents
    Last edited March 10, 2003 1:19 am \ No newline at end of file +Table of Contents
    Last edited September 6, 2003 3:09 am \ No newline at end of file diff --git a/doc/ref/Reference/or.html b/doc/ref/Reference/or.html index 1cdfc1e..916b722 100644 --- a/doc/ref/Reference/or.html +++ b/doc/ref/Reference/or.html @@ -38,7 +38,7 @@ Returns the result of short-circuit logical or (||) operat

    - +
     Expression  Expression type  Precondition  Semantics  Postcondition 
    typedef or_<f1,f2,..,fn>::type c;A model of bool Integral ConstantReturns true_ if either of f1::type::value, f2::type::value, .., fn::type::value expressions evaluates to true, and false_ otherwise; guarantees left-to-right evaluation; moreover, the operands subsequent to the first fi metafunction that evaluates to true are not evaluated.
    or_<f1,f2,..,fn>A model of bool Integral Constanttrue_ if either of f1::type::value, f2::type::value, .., fn::type::value expressions evaluates to true, and false_ otherwise; guarantees left-to-right evaluation; moreover, the operands subsequent to the first fi metafunction that evaluates to true are not evaluated.

    Example

    @@ -50,13 +50,13 @@ template< typename T > struct fail typedef typename T::nonexistent type; };

    -BOOST_STATIC_ASSERT((or_< false_,true_ >::type::value == true)); -BOOST_STATIC_ASSERT((or_< true_,fail<int> >::type::value == true)); // OK, fail<int> is never invoked -BOOST_STATIC_ASSERT((or_< false_,true_,fail<int> >::type::value == true)); // OK too +BOOST_STATIC_ASSERT((or_< false_,true_ >::value == true)); +BOOST_STATIC_ASSERT((or_< true_,fail<int> >::value == true)); // OK, fail<int> is never invoked +BOOST_STATIC_ASSERT((or_< false_,true_,fail<int> >::value == true)); // OK too

    See also

    Metafunctions, and_, not_


    -Table of Contents
    Last edited March 10, 2003 1:18 am \ No newline at end of file +Table of Contents
    Last edited September 6, 2003 3:14 am \ No newline at end of file diff --git a/doc/ref/Reference/rational_c.html b/doc/ref/Reference/rational_c.html new file mode 100644 index 0000000..f9e36dd --- /dev/null +++ b/doc/ref/Reference/rational_c.html @@ -0,0 +1,72 @@ + +boost::mpl::rational_c + + +

    [Home]rational_c

    Synopsis

    +

    +

    +template<
    +      typename IntegerType
    +    , IntegerType N
    +    , IntegerType D = 1
    +    >
    +struct rational_c
    +{
    +    typedef rational_c<IntegerType, N, D> type;
    +    typedef IntegerType integer_type;
    +    typedef integral_c<IntegerType,N> numerator;
    +    typedef integral_c<IntegerType,D> denominator;
    +

    + static double value(); +}; +

    +

    +

    +

    Description

    +

    +A model of Rational Constant. +

    +

    Definition

    +

    +

    +#include "boost/mpl/rational_c.hpp"
    +
    +

    +

    Parameters

    + + + + + +
     Parameter  Requirement  Description  
    IntegerTypeAn integral typeType used to represent numerator and denominator.
    NA compile time integral constant of type IntegerTypeValue of numerator.
    DA compile time integral constant of type IntegerTypeValue of denominator.
    +

    +

    Expression semantics

    +

    + + + +
     Expression  Expression type  Precondition  Semantics  Postcondition 
    rational_c<T,n,d>::value()doublestatic_cast<T>(d) != 0Returns static_cast<double>(static_cast<T>(n)) / static_cast<T>(d).
    +

    +

    Complexity

    +

    +All operations take amortized constant time. +

    +

    Example

    +

    +

    +  typedef rational_c<int,1,2> half;
    +  typedef rational_c<int,2,4> half_2;
    +  typedef rational_c<long,9,15> three_fiths_3;
    +  typedef rational_plus<three_fiths,half>::type eleven_tenth;
    +  typedef rational_plus<half,half>::type one;
    +  typedef rational_c<long,1,8> eighth;
    +  typedef rational_minus<half,eighth>::type three_eighths;
    +  typedef rational_multiplies<half,eighth>::type sixteenth;
    +  typedef rational_divides<eighth,half>::type quarter;
    +
    +

    +

    See also

    +

    +Rational Constant, Integral Constant, integral_c +


    +Table of Contents
    Last edited October 30, 2003 2:44 am \ No newline at end of file diff --git a/doc/ref/Sequences.html b/doc/ref/Sequences.html index b565e83..a7bcb59 100644 --- a/doc/ref/Sequences.html +++ b/doc/ref/Sequences.html @@ -11,6 +11,11 @@
  • Extensible Sequence

    +

    +

    Classes

    +

    +

    Views

    -

    Metafunctions

    +

    Intrinsic Metafunctions


    -Table of Contents
    Last edited March 10, 2003 5:07 am \ No newline at end of file +Table of Contents
    Last edited July 1, 2003 3:47 pm \ No newline at end of file diff --git a/doc/ref/Table_of_Contents.html b/doc/ref/Table_of_Contents.html index 0bf95ab..0f79c14 100644 --- a/doc/ref/Table_of_Contents.html +++ b/doc/ref/Table_of_Contents.html @@ -8,8 +8,9 @@
  • Algorithms
  • Metafunctions
  • Integral constant classes +
  • Macros
  • Categorized index
  • Acknowledgements


    -Table of Contents
    Last edited March 10, 2003 1:32 am \ No newline at end of file +Table of Contents
    Last edited November 6, 2003 11:39 am \ No newline at end of file