From 7068cab3e141c56f680e0d60a1b5a37550014d5f Mon Sep 17 00:00:00 2001 From: Aleksey Gurtovoy Date: Fri, 29 Oct 2004 09:40:12 +0000 Subject: [PATCH] fix BoostBook/broken links/invalid filenames/etc. [SVN r25931] --- doc/index.html | 484 +----------------- doc/ref/Acknowledgements.html | 7 - doc/ref/Algorithms.html | 40 -- doc/ref/Associative_Sequence.html | 58 --- doc/ref/Bidirectional_Iterator.html | 50 -- doc/ref/Bidirectional_Sequence.html | 35 -- doc/ref/Categorized_index.html | 98 ---- doc/ref/Extensible_Associative_Sequence.html | 47 -- doc/ref/Extensible_Sequence.html | 40 -- doc/ref/Forward_Iterator.html | 34 -- doc/ref/Forward_Sequence.html | 58 +-- doc/ref/Input_Iterator.html | 44 -- doc/ref/Integral_Constant.html | 53 +- doc/ref/Integral_constant_classes.html | 19 - doc/ref/Iterators.html | 31 -- doc/ref/Macros.html | 24 - doc/ref/Metafunction.html | 87 +--- doc/ref/Metafunction_Class.html | 67 --- doc/ref/Metafunctions.html | 61 --- doc/ref/Random_Access_Iterator.html | 48 -- doc/ref/Random_Access_Sequence.html | 35 -- doc/ref/Rational_Constant.html | 37 -- .../BOOST_MPL_AUX_LAMBDA_SUPPORT.html | 50 -- doc/ref/Reference/advance.html | 62 --- doc/ref/Reference/and.html | 62 --- doc/ref/Reference/at.html | 59 --- doc/ref/Reference/at_c.html | 59 --- doc/ref/Reference/back.html | 64 --- doc/ref/Reference/begin.html | 56 -- doc/ref/Reference/clear.html | 60 --- doc/ref/Reference/contains.html | 58 --- doc/ref/Reference/copy.html | 70 --- doc/ref/Reference/copy_backward.html | 70 --- doc/ref/Reference/copy_backward_if.html | 70 --- doc/ref/Reference/copy_if.html | 70 --- doc/ref/Reference/count.html | 60 --- doc/ref/Reference/count_if.html | 61 --- doc/ref/Reference/deref.html | 56 -- doc/ref/Reference/distance.html | 56 -- doc/ref/Reference/divides.html | 64 --- doc/ref/Reference/empty.html | 59 --- doc/ref/Reference/end.html | 57 --- doc/ref/Reference/equal.html | 59 --- doc/ref/Reference/equal_to.html | 61 --- doc/ref/Reference/erase.html | 65 --- doc/ref/Reference/erase_range.html | 63 --- doc/ref/Reference/filter_view.html | 63 --- doc/ref/Reference/find.html | 58 --- doc/ref/Reference/find_if.html | 58 --- doc/ref/Reference/fold.html | 65 --- doc/ref/Reference/fold_backward.html | 75 --- doc/ref/Reference/front.html | 60 --- doc/ref/Reference/greater.html | 61 --- doc/ref/Reference/greater_equal.html | 61 --- doc/ref/Reference/insert.html | 62 --- doc/ref/Reference/insert_range.html | 62 --- doc/ref/Reference/is_sequence.html | 59 --- doc/ref/Reference/iter_fold.html | 65 --- doc/ref/Reference/iter_fold_backward.html | 71 --- doc/ref/Reference/iterator_category.html | 62 --- doc/ref/Reference/joint_view.html | 61 --- doc/ref/Reference/less.html | 61 --- doc/ref/Reference/less_equal.html | 61 --- doc/ref/Reference/list.html | 45 -- doc/ref/Reference/list_c.html | 58 --- doc/ref/Reference/lower_bound.html | 61 --- doc/ref/Reference/max_element.html | 62 --- doc/ref/Reference/min_element.html | 62 --- doc/ref/Reference/minus.html | 64 --- doc/ref/Reference/modulus.html | 61 --- doc/ref/Reference/multiplies.html | 64 --- doc/ref/Reference/negate.html | 60 --- doc/ref/Reference/not.html | 51 -- doc/ref/Reference/not_equal_to.html | 61 --- doc/ref/Reference/or.html | 62 --- doc/ref/Reference/plus.html | 64 --- doc/ref/Reference/pop_back.html | 71 --- doc/ref/Reference/pop_front.html | 71 --- doc/ref/Reference/push_back.html | 63 --- doc/ref/Reference/push_front.html | 64 --- doc/ref/Reference/range_c.html | 71 --- doc/ref/Reference/rational_c.html | 72 --- doc/ref/Reference/remove.html | 59 --- doc/ref/Reference/remove_if.html | 59 --- doc/ref/Reference/replace.html | 61 --- doc/ref/Reference/replace_if.html | 61 --- doc/ref/Reference/reverse.html | 58 --- doc/ref/Reference/single_view.html | 62 --- doc/ref/Reference/size.html | 60 --- doc/ref/Reference/transform.html | 59 --- doc/ref/Reference/transform_view.html | 62 --- doc/ref/Reference/upper_bound.html | 61 --- doc/ref/Reference/vector.html | 77 --- doc/ref/Reference/vector_c.html | 58 --- doc/ref/Reference/zip_view.html | 66 --- doc/ref/Sequence.html | 59 +-- doc/ref/Sequences.html | 74 +-- doc/ref/Table_of_Contents.html | 16 - doc/ref/Trivial_Iterator.html | 46 -- doc/ref/mpl_logo.jpg | Bin 17396 -> 0 bytes doc/ref/mpl_wiki.css | 41 -- 101 files changed, 59 insertions(+), 6160 deletions(-) delete mode 100644 doc/ref/Acknowledgements.html delete mode 100644 doc/ref/Algorithms.html delete mode 100644 doc/ref/Associative_Sequence.html delete mode 100644 doc/ref/Bidirectional_Iterator.html delete mode 100644 doc/ref/Bidirectional_Sequence.html delete mode 100644 doc/ref/Categorized_index.html delete mode 100644 doc/ref/Extensible_Associative_Sequence.html delete mode 100644 doc/ref/Extensible_Sequence.html delete mode 100644 doc/ref/Forward_Iterator.html delete mode 100644 doc/ref/Input_Iterator.html delete mode 100644 doc/ref/Integral_constant_classes.html delete mode 100644 doc/ref/Iterators.html delete mode 100644 doc/ref/Macros.html delete mode 100644 doc/ref/Metafunction_Class.html delete mode 100644 doc/ref/Metafunctions.html delete mode 100644 doc/ref/Random_Access_Iterator.html delete mode 100644 doc/ref/Random_Access_Sequence.html delete mode 100644 doc/ref/Rational_Constant.html delete mode 100644 doc/ref/Reference/BOOST_MPL_AUX_LAMBDA_SUPPORT.html delete mode 100644 doc/ref/Reference/advance.html delete mode 100644 doc/ref/Reference/and.html delete mode 100644 doc/ref/Reference/at.html delete mode 100644 doc/ref/Reference/at_c.html delete mode 100644 doc/ref/Reference/back.html delete mode 100644 doc/ref/Reference/begin.html delete mode 100644 doc/ref/Reference/clear.html delete mode 100644 doc/ref/Reference/contains.html delete mode 100644 doc/ref/Reference/copy.html delete mode 100644 doc/ref/Reference/copy_backward.html delete mode 100644 doc/ref/Reference/copy_backward_if.html delete mode 100644 doc/ref/Reference/copy_if.html delete mode 100644 doc/ref/Reference/count.html delete mode 100644 doc/ref/Reference/count_if.html delete mode 100644 doc/ref/Reference/deref.html delete mode 100644 doc/ref/Reference/distance.html delete mode 100644 doc/ref/Reference/divides.html delete mode 100644 doc/ref/Reference/empty.html delete mode 100644 doc/ref/Reference/end.html delete mode 100644 doc/ref/Reference/equal.html delete mode 100644 doc/ref/Reference/equal_to.html delete mode 100644 doc/ref/Reference/erase.html delete mode 100644 doc/ref/Reference/erase_range.html delete mode 100644 doc/ref/Reference/filter_view.html delete mode 100644 doc/ref/Reference/find.html delete mode 100644 doc/ref/Reference/find_if.html delete mode 100644 doc/ref/Reference/fold.html delete mode 100644 doc/ref/Reference/fold_backward.html delete mode 100644 doc/ref/Reference/front.html delete mode 100644 doc/ref/Reference/greater.html delete mode 100644 doc/ref/Reference/greater_equal.html delete mode 100644 doc/ref/Reference/insert.html delete mode 100644 doc/ref/Reference/insert_range.html delete mode 100644 doc/ref/Reference/is_sequence.html delete mode 100644 doc/ref/Reference/iter_fold.html delete mode 100644 doc/ref/Reference/iter_fold_backward.html delete mode 100644 doc/ref/Reference/iterator_category.html delete mode 100644 doc/ref/Reference/joint_view.html delete mode 100644 doc/ref/Reference/less.html delete mode 100644 doc/ref/Reference/less_equal.html delete mode 100644 doc/ref/Reference/list.html delete mode 100644 doc/ref/Reference/list_c.html delete mode 100644 doc/ref/Reference/lower_bound.html delete mode 100644 doc/ref/Reference/max_element.html delete mode 100644 doc/ref/Reference/min_element.html delete mode 100644 doc/ref/Reference/minus.html delete mode 100644 doc/ref/Reference/modulus.html delete mode 100644 doc/ref/Reference/multiplies.html delete mode 100644 doc/ref/Reference/negate.html delete mode 100644 doc/ref/Reference/not.html delete mode 100644 doc/ref/Reference/not_equal_to.html delete mode 100644 doc/ref/Reference/or.html delete mode 100644 doc/ref/Reference/plus.html delete mode 100644 doc/ref/Reference/pop_back.html delete mode 100644 doc/ref/Reference/pop_front.html delete mode 100644 doc/ref/Reference/push_back.html delete mode 100644 doc/ref/Reference/push_front.html delete mode 100644 doc/ref/Reference/range_c.html delete mode 100644 doc/ref/Reference/rational_c.html delete mode 100644 doc/ref/Reference/remove.html delete mode 100644 doc/ref/Reference/remove_if.html delete mode 100644 doc/ref/Reference/replace.html delete mode 100644 doc/ref/Reference/replace_if.html delete mode 100644 doc/ref/Reference/reverse.html delete mode 100644 doc/ref/Reference/single_view.html delete mode 100644 doc/ref/Reference/size.html delete mode 100644 doc/ref/Reference/transform.html delete mode 100644 doc/ref/Reference/transform_view.html delete mode 100644 doc/ref/Reference/upper_bound.html delete mode 100644 doc/ref/Reference/vector.html delete mode 100644 doc/ref/Reference/vector_c.html delete mode 100644 doc/ref/Reference/zip_view.html delete mode 100644 doc/ref/Table_of_Contents.html delete mode 100644 doc/ref/Trivial_Iterator.html delete mode 100644 doc/ref/mpl_logo.jpg delete mode 100644 doc/ref/mpl_wiki.css diff --git a/doc/index.html b/doc/index.html index e645f01..2b5aad8 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1,495 +1,29 @@ - -THE BOOST MPL LIBRARY - - + + THE BOOST MPL LIBRARY + + +
+
-

THE BOOST MPL LIBRARY

+

THE BOOST MPL LIBRARY

-
-

Table of Contents

+

The Boost MPL library documentation is currently undergoing a major overhaul +for the 1.32 release. Please come back in a few days.

-
-
1. Preface
- -
2. Sources
- -
3. Mini-tutorial
- -
-
-
3.1. Conventions used
- -
3.2. Metafunctions
- -
3.3. Compile-time if
- -
3.4. apply_if
- -
3.5. apply_if, part 2
-
-
- -
4. Technical details
- -
-
-
4.1. Physical structure
- -
4.2. Dependencies
- -
4.3. Portability
-
-
- -
5. Acknowledgements
- -
Bibliography
-
-
-
-
-

1. Preface

-
-
- -

The MPL library is a C++ template metaprogramming framework of compile-time algorithms, sequences and metafunction classes. The two main documentation sources for the library is “the MPL paper”, and the library's reference documentation. If you haven't heard about the MPL before, we suggest you to start with the paper, and then move on to the reference documentation and the information in this document.

- - -
- -
-
-
-

2. Sources

-
-
- -

The latest library sources are available from the main trunk of the Boost CVS. Boost 1.30.0 distribution contains a stable version of the library as per March 12, 2003.

-
- -
-
-
-

3. Mini-tutorial

-
-
- -
-
-
-

3.1. Conventions used

-
-
- -

The examples used through this tutorial use fully qualified names, e.g. std::vector instead of plain vector. Any unqualified name refers to a local entity defined in the example itself. The names from boost::mpl namespace are referred to using mpl namespace alias (e.g. mpl::apply instead of boost::mpl::apply), as if the following namespace alias definition were in effect:

- -
-namespace mpl = boost::mpl;
-
- -

Note that the library offers a special header, boost/mpl/alias.hpp, including which gives you a rough equivalent of the above. Alternatively, you can always spell the namespace alias definition manually in each translation unit as needed (if you choose to use the shorter namespace notation at all).

-
- -
-
-
-

3.2. Metafunctions

-
-
- -

In MPL, the metaprogramming equivalent of a function is a class template containing a nested typedef member aptly named “type”:

- -
-// on the face of it, not very useful
-template< typename T >
-struct identity 
-{
-    typedef T type;
-};
-
-// perhaps more useful
-template< typename T >
-struct result_type 
-{
-    typedef typename T::result_type type;
-};
-
- -

“Invoking” a metafunction is as simple as instantiating the class template with particular template parameters (metafunction “arguments”) and accessing the result through the nested type member:

- -
-typedef identity<int>::type t1; // t1 == int
-typedef result_type< std::unary_function<int,bool> >::type t2; // t2 == bool
-
-
- -
-
-
-

3.3. Compile-time if

-
-
- -

The most interesting template metaprograms often contain a lot of decision-making code. Some of conditional decisions/behavior can be handled directly by (partial) class template specialization or function overloading [Vel95a], [Ale00], but in general there is a need for a standalone library primitive that would allow one to choose between two types basing on a compile-time expression. In boost::mpl such primitive is called if_:

- -
-template< typename T >
-struct heap_holder
-{
- // ... 
- private:
-    boost::scoped_ptr<T> m_object;
-};
-
-template< typename T >
-struct stack_holder
-{
- // ... 
- private:
-    T m_object;
-};
-
-template< typename T >
-struct can_be_on_stack
-    : mpl::bool_c< (sizeof(T) <= sizeof(double)) >
-{
-};
-
-// use 'if_' to choose where to store 'T' member
-template< typename T >
-struct lightweight
-   : private mpl::if_<
-          can_be_on_stack<T>
-        , stack_holder<T>
-        , heap_holder<T>
-        >::type
-{
-   // ...
-};
-
- -

Note that the first template parameter of the if_ template is a type that should be a model of Integral Constant concept. The library also provides a less generic but sometimes more convenient form that accepts a condition in form of non-type bool template parameter:

- -
-template< typename T >
-struct lightweight
-   : private mpl::if_c<
-          (sizeof(T) <= sizeof(double))
-        , stack_holder<T>
-        , heap_holder<T>
-        >::type
-{
-   // ...
-};
-
-
- -
-
-
-

3.4. apply_if

-
-
- -

In run-time C++, it is guaranteed that when we reach an if statement, only one branch will be executed. Executing the branch for which the result is not required would be unnecessary and inefficient. More importantly, frequently the non-required branch is invalid, and executing it would cause an error. For instance, the following code would be badly broken if both branches of the statement were evaluated:

- -
-void fun(giraffe* g)
-{
-    if (g)
-        cout << g->name();
-    else
-        cout << "no giraffe";
-}
-
- -

In compile-time world, things are different. Which parameters to if_ template are instantiated is determined by the form of each template parameter and the corresponding language rules ([ISO98], section 14.7.1), not by the value of the compile-time expression being switched on. That means that if, in attempt to process a particular if_ construct, the compiler determines that one of its “branch” template parameters is ill-formed, it will issue a diagnostics even if the value of compile-time expression would lead to “choosing” the other, valid parameter type.

- -

To clarify what we just said, here is a broken first attempt at writing a pointed_type metafunction, that when instantiated for a T that is either a plain pointer or a smart pointer, “returns” the pointed type:

- -
-template< typename T >
-struct pointed_type
-{
-    typedef typename mpl::if_<
-          boost::is_pointer<T>
-        , typename boost::remove_pointer<T>::type
-        , typename T::element_type // #1
-        >::type type;
-};
-
-typedef pointed_type< std::auto_ptr<int> >::type int_ptr; // ok
-typedef pointed_type<char*>::type char_ptr; // error in line #1!
-
- -

If we try to compile the above, we will get something like this:

- -
-Error: name followed by "::" must be a class or namespace name
-
- -

because the expression typename T::element_type is not valid in case of T == char*.

- -

Here's what we need to do to make pointed_type work for plain pointers: 1 instead of instantiating our two potential results before passing them to if_, we need to write metafunctions that can be used to instantiate the results; then we can use if_ to choose a metafunction, and only then should we use that function to get the result.

- -

boost::remove_pointer already is a metafunction. We just need to write an auxiliary function to return the element_type of a pointer type:

- -
-namespace aux {
-template< typename T >
-struct element_type
-{
-     typedef typename T::element_type type;
-};
-}
-
- -

Now we can select the metafunction to call based on the result of boost::is_pointer, and then apply it to form the result:

- -
-template< typename T >
-struct pointed_type
-{
- private:
-    // pick a metafunction
-    typedef typename mpl::if_<
-          boost::is_pointer<T>
-        , boost::remove_pointer<T>
-        , aux::element_type<T>
-        >::type func_; // #1
-
- public:
-    // apply the metafunction
-    typedef typename func_::type type;
-};
-
- -

The key knowledge that makes the above viable is that in line #1 the compiler is guaranteed not to instantiate boost::remove_pointer<T> and aux::element_type<T> templates, - even although they are passed as actual arguments to the if_.

- -

The described technique is so common in template metaprograms, that it makes sense to facilitate the selection of the nested type member by introducing a high level equivalent to if_ that will do func_::type operation as a part of its invocation. The MPL provides such a template - it's called apply_if. Using it, we can re-write the above code as simply as:

- -
-[
-template< typename T >
-struct pointed_type
-{
-    typedef typename mpl::apply_if<
-          boost::is_pointer<T>
-        , boost::remove_pointer<T>
-        , aux::element_type<T>
-        >::type type;
-};
-
-
- -
-
-
-

3.5. apply_if, part 2

-
-
- -

Besides solving the “making the code compile” problem, the apply_if technique we've just learned can be also used to improve metaprogram efficiency.

- -

Suppose we want to define a high-level wrapper around boost::remove_pointer traits template, which will strip the pointer qualification conditionally. We will call it remove_pointer_if:

- -
-template<
-      typename Condition
-    , typename T
-    >
-struct remove_pointer_if
-{
-    typedef typename mpl::if_<
-          Condition
-        , typename boost::remove_pointer<T>::type
-        , T
-        >::type type;
-};
-
- -

The above works the first time, but it's not the most optimal implementation. Similar to our previous examples, boost::remove_pointer<T> gets instantiated even if its result is never used. In the metaprogramming world compilation time is an important resource [Abr01], and it is wasted by unnecessary template instantiations.

- -

Let's see what we need to substitute if_ by apply_if here. We already have one metafunction to pass to apply_if - boost::remove_pointer<T>, but we need a second one, - let's call it f, - such as f<T>::type == T. We could write this one ourselves, but fortunately MPL already provides us with a template that matches this exact definition - it's called identity. Applying this knowledge, we get:

- -
-template<
-      typename Condition
-    , typename T
-    >
-struct remove_pointer_if
-{
-    typedef typename mpl::apply_if<
-          Condition
-        , boost::remove_pointer<T>
-        , mpl::identity<T>
-        >::type type;
-};
-
-
-
- -
-
-
-

4. Technical details

-
-
- -
-
-
-

4.1. Physical structure

-
-
- -

The library provides you with a fine-grained header structure with one header per public component (class/function template), with the header named after the component; for example, boost::mpl::apply<> template is defined in the header boost/mpl/apply.hpp. This scheme both ensures that you don't pay for what you don't use in terms of compilation time/header dependencies, and frees you from memorizing/looking up header/component correspondence. Several composite headers for the entities that are likely to be used together (e.g. logical operations - logical_or, logical_and, etc.) are also provided. It allows one to avoid the burden of spelling many #include directives in programs that make an intensive use of the library facilities. 2

-
- -
-
-
-

4.2. Dependencies

-
-
- -

Besides boost/config.hpp header, the MPL heavily depends on two other Boost libraries - the Boost Preprocessor library [PRE], and the Type Traits library [TTL]. These dependencies are essential and cannot be eliminated. In addition to those, the boost/mpl/assert.hpp header depends on Boost Static Assert library [SAL]. The library tests and examples may depend on some additional Boost libraries, e.g. Boost Bind [BBL]; you don't have to have those unless you are interested in actually compiling the tests/examples (probably you are, though).

-
- -
-
-
-

4.3. Portability

-
-
- -

Below is the list of compilers the library has been tested with:

- -
-
    -
  • Microsoft Visual C++ 6.0, SP 5
  • - -
  • Microsoft Visual C++ .NET (7.0)
  • - -
  • Metrowerks CodeWariror 7.2/8.1
  • - -
  • Intel C++ Compiler 5.0, 6.0
  • - -
  • GCC 2.95.3-5
  • - -
  • GCC 3.1
  • - -
  • Comeau C/C++ 4.2.45/4.3.0
  • - -
  • Borland C++ 5.5.1
  • -
-
- -

An incomplete matrix of recent test compilation results is available from here - http://www.mywikinet.com/mpl/log.html.

-
-
- -
-
-
-

5. Acknowledgements

-
-
- -

Following is a list of people who in one or another way contributed to the library development. The list is work in progress!

- -

David Abrahams, Emily Winch, Eric Friedman, Vesa Karvonen, Peter Dimov, Mat Marcus, Fernando Cacciola, Paul Mensonides, David B. Held, John Bandela, Arnaldur Gylfason, Hamish Mackenzie.

- -

Copyright on this document. Copyright © 2002 Aleksey Gurtovoy, David Abrahams and Emily Winch.

-
- -
-
-
-

Bibliography

-
-
- -
-

[Abr01] David Abrahams and Carlos Pinto Coelho, Effects of Metaprogramming Style on Compilation Time, 2001

-
- -
-

[Ale00] Andrei Alexandrescu, On Conversions between Types and Values, C/C++ Users Journal, October 2000

-
- -
-

[BBL] Boost Bind library, http://www.boost.org/libs/bind/bind.html

-
- -
-

[ISO98] ISO/IEC 14882:1998(E), Programming languages — C++, ISO/IEC, 1998

-
- -
-

[PRE] Vesa Karvonen, Boost Preprocessor Metaprogramming library, http://www.boost.org/libs/preprocessor/doc/

-
- -
-

[TTL] Boost Type Traits library, http://www.boost.org/libs/type_traits/

-
- -
-

[SAL] Boost Static Assert library, http://www.boost.org/libs/static_assert/static_assert.htm

-
- -
-

[Vel95a] Todd Veldhuizen, Using C++ template metaprograms, C++ Report, SIGS Publications Inc., ISSN 1040-6042, Vol. 7, No. 4, pp. 36-43, May 1995

-
-
- -

-
-
-

1 It would be easy to implement pointed_type using partial specialization to distinguish the case where T is a pointer. if_ is used here to avoid creating a complicated example.

-
- -
-

2 The Boost Preprocessor library [PRE] exposes a very similar physical organization; in fact, the libraries even share the common subdirectory naming (mpl/arithmetic <-> preprocessor/arithmetic, mpl/comparison <-> preprocessor/comparison, etc.).

-
-
-
diff --git a/doc/ref/Acknowledgements.html b/doc/ref/Acknowledgements.html deleted file mode 100644 index 5a3cbeb..0000000 --- a/doc/ref/Acknowledgements.html +++ /dev/null @@ -1,7 +0,0 @@ - -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. -


-Table of Contents
Last edited July 17, 2002 9:04 am \ No newline at end of file diff --git a/doc/ref/Algorithms.html b/doc/ref/Algorithms.html deleted file mode 100644 index 6224c7b..0000000 --- a/doc/ref/Algorithms.html +++ /dev/null @@ -1,40 +0,0 @@ - -boost::mpl::Algorithms - - -

[Home]Algorithms

Iteration algorithms

- -

Querying algorithms

- -

Transformation algorithms

- -


-Table of Contents
Last edited March 10, 2003 1:55 am \ No newline at end of file diff --git a/doc/ref/Associative_Sequence.html b/doc/ref/Associative_Sequence.html deleted file mode 100644 index 50b8ad6..0000000 --- a/doc/ref/Associative_Sequence.html +++ /dev/null @@ -1,58 +0,0 @@ - -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/Bidirectional_Iterator.html b/doc/ref/Bidirectional_Iterator.html deleted file mode 100644 index 3dda373..0000000 --- a/doc/ref/Bidirectional_Iterator.html +++ /dev/null @@ -1,50 +0,0 @@ - -boost::mpl::Bidirectional Iterator - - -

[Home]Bidirectional Iterator

Description

-

-A Bidirectional Iterator is a Forward Iterator that provides a way to obtain the previous element in a sequence. -

-

-

Refinement of

-

-Forward Iterator -

-

Definitions

- -

-

Valid expressions

-

-Bidirectional Iterator both defines a new expression and refines the one described in Forward Iterator. -

- - - - -
 Expression  Expression type  
typename i::nextA model of Bidirectional Iterator
typename i::priorA model of Bidirectional Iterator
-

-

Expression semantics

-

-Semantics of an expression is defined only where it is not defined in Forward Iterator. -

- - - -
 Expression  Complexity  Precondition  Semantics  Postcondition  
typename i::priorAmortized constant timei is decrementablei::prior is an iterator pointing to the previous element of the sequencei::prior is dereferencable and incrementable
-

-

Invariants

-

-For any bidirectional iterators i and j the following invariants always hold: -

-

-

-

See also

-

-Bidirectional Sequence, Forward Iterator, Random Access Iterator -


-Table of Contents
Last edited July 15, 2002 11:33 am \ No newline at end of file diff --git a/doc/ref/Bidirectional_Sequence.html b/doc/ref/Bidirectional_Sequence.html deleted file mode 100644 index dcd7e2c..0000000 --- a/doc/ref/Bidirectional_Sequence.html +++ /dev/null @@ -1,35 +0,0 @@ - -boost::mpl::Bidirectional Sequence - - -

[Home]Bidirectional Sequence

Description

-

-A Bidirectional Sequence is a Forward Sequence, which provides iterators that satisfy the Bidirectional Iterator requirements. -

-

Refinement of

-

-Forward Sequence -

-

Valid expressions

-

-Bidirectional Sequence does not define any new expressions beyond those defined in Forward Sequence. However, it refines the expression requirements. -

- - - - -
 Expression  Expression type  
typename begin<s>::typeA model of Bidirectional Iterator
typename end<s>::typeA model of Bidirectional Iterator
-

-

Models

-

-

-

-

See also

-

-Forward Sequence, Random Access Sequence, Bidirectional Iterator -


-Table of Contents
Last edited July 15, 2002 2:36 pm \ No newline at end of file diff --git a/doc/ref/Categorized_index.html b/doc/ref/Categorized_index.html deleted file mode 100644 index 480e672..0000000 --- a/doc/ref/Categorized_index.html +++ /dev/null @@ -1,98 +0,0 @@ - -boost::mpl::Categorized index - - -

[Home]Categorized index

Concepts

-

-

-

-

Components

-

-

-


-Table of Contents
Last edited March 12, 2003 7:17 am \ No newline at end of file diff --git a/doc/ref/Extensible_Associative_Sequence.html b/doc/ref/Extensible_Associative_Sequence.html deleted file mode 100644 index 281ef4d..0000000 --- a/doc/ref/Extensible_Associative_Sequence.html +++ /dev/null @@ -1,47 +0,0 @@ - -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 deleted file mode 100644 index 59010d5..0000000 --- a/doc/ref/Extensible_Sequence.html +++ /dev/null @@ -1,40 +0,0 @@ - -boost::mpl::Extensible Sequence - - -

[Home]Extensible Sequence

Description

-

-An Extensible Sequence is either a Forward Sequence, a Bidirectional Sequence or a Random Access Sequence that supports insertion and removal operations. -

-

Refinement of

-

-Forward Sequence, Bidirectional Sequence or Random Access Sequence -

-

Valid expressions

-

- - - - - - -
 Expression  Expression type  
typename clear<s>::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
-

-

Expression semantics

-

-See the description of clear, insert, and erase algorithms. -

-

Models

-

-

-

-

See also

-

-Sequences, clear, insert, erase -


-Table of Contents
Last edited May 2, 2003 4:54 am \ No newline at end of file diff --git a/doc/ref/Forward_Iterator.html b/doc/ref/Forward_Iterator.html deleted file mode 100644 index 81dad61..0000000 --- a/doc/ref/Forward_Iterator.html +++ /dev/null @@ -1,34 +0,0 @@ - -boost::mpl::Forward Iterator - - -

[Home]Forward Iterator

Description

-

-A Forward Iterator is an Input Iterator that guarantees a linear traversal over the sequence. -

-

Refinement of

-

-Input Iterator -

-

-

Valid expressions

-

-Forward Iterator does not define any new expressions beyond those defined in Input Iterator. However, some of the restrictions described in Input Iterator are relaxed. -

- - - -
 Expression  Expression type  
typename i::nextA model of Forward Iterator
-

-

Invariants

-

-For any forward iterators i and j the following invariants always hold: -

-

-

See also

-

-Forward Sequence, Input Iterator, Bidirectional Iterator -


-Table of Contents
Last edited July 15, 2002 10:53 am \ No newline at end of file diff --git a/doc/ref/Forward_Sequence.html b/doc/ref/Forward_Sequence.html index a1129a4..c8d24d0 100644 --- a/doc/ref/Forward_Sequence.html +++ b/doc/ref/Forward_Sequence.html @@ -1,48 +1,10 @@ - -boost::mpl::Forward Sequence - - -

[Home]Forward Sequence

Description

-

-A Forward Sequence is a Sequence which guarantees that its elements are arranged in a definite order, and that the ordering will not change spontaneously [1]. Iterators into a forward sequence satisfy the Forward Iterator requirements. -

-

Refinement of

-

-Sequence -

-

Valid expressions

-

-Forward Sequence does not define any new expressions beyond those defined in Sequence. However, it refines the expression requirements. -

- - - - -
 Expression  Expression type  
typename begin<s>::typeA model of Forward Iterator
typename end<s>::typeA model of Forward Iterator
-

-

Invariants

-

-For any forward sequence s the following invariants always hold: -

-

-

Models

-

-

-

-

Notes

-

-[1] Both between compilation sessions and from iteration to iteration.
-

-

See also

-

-Sequence, Bidirectional Sequence, Forward Iterator -


-Table of Contents
Last edited July 15, 2002 2:34 pm \ No newline at end of file + + + + + + +Automatic redirection failed, please go to +../index.html. + + diff --git a/doc/ref/Input_Iterator.html b/doc/ref/Input_Iterator.html deleted file mode 100644 index 41bfcc9..0000000 --- a/doc/ref/Input_Iterator.html +++ /dev/null @@ -1,44 +0,0 @@ - -boost::mpl::Input Iterator - - -

[Home]Input Iterator

Description

-

-An Input Iterator is a Trivial Iterator that provides a way to obtain the next iterator in a sequence. -

-

Refinement of

-

-Trivial Iterator -

-

Definitions

-

-

-

-

Valid expressions

-

-In addition to the expressions defined in Trivial Iterator, the following expressions must be valid. -

- - - -
 Expression  Expression type  
typename i::nextA model of Input Iterator
-

-

Expression semantics

-

- - - -
 Expression  Complexity  Precondition  Semantics  Postcondition  
typename i::nextAmortized constant timei is incrementablei::next is the next iterator in a sequencei::next is dereferenceable or past-the-end
-

-

See also

-

-Sequence, Trivial Iterator, Forward Iterator -


-Table of Contents
Last edited April 21, 2003 4:14 pm \ No newline at end of file diff --git a/doc/ref/Integral_Constant.html b/doc/ref/Integral_Constant.html index b19b9b6..c8d24d0 100644 --- a/doc/ref/Integral_Constant.html +++ b/doc/ref/Integral_Constant.html @@ -1,43 +1,10 @@ - -boost::mpl::Integral Constant - - -

[Home]Integral Constant

Description

-

-An Integral Constant is a class representing a value of a built-in integral type (bool, int, long, etc.) in compile-time programs. An integral constant directly supports the increment/decrement operations within the range of the built-in integral type it wraps. Other arithmetic operations are supported through the external metafunctions. -

-

Valid expressions

-

- - - - - - - -
 Expression  Return type  
typename n::value_typeAn integral type
typename n::typeA model of Integral Constant
n::valueA compile-time integral constant of n::value_type
typename n::nextA model of Integral Constant
typename n::priorA model of Integral Constant
-

-

Expression semantics

-

- - - - - - - -
 Expression  Complexity  Precondition  Semantics  Postcondition  
typename n::value_typeAmortized constant timen::value_type is identical to typeof(n::value)
typename n::typeAmortized constant timeSelf-reference.is_same<n::type,n>::value == true
n::valueAmortized constant timeValue of n.
typename n::nextAmortized constant timen::value_type supports an increment operation; n::value is incrementableIncrement operationn::next::value == n::value + 1
typename n::priorAmortized constant timen::value_type supports an decrement operation; n::value is decrementableDecrement operationn::prior::value == n::value - 1
-

-

Models

-

-

-

-

See also

-

-next, prior -


-Table of Contents
Last edited March 10, 2003 4:21 am \ No newline at end of file + + + + + + +Automatic redirection failed, please go to +../index.html. + + diff --git a/doc/ref/Integral_constant_classes.html b/doc/ref/Integral_constant_classes.html deleted file mode 100644 index fdc082b..0000000 --- a/doc/ref/Integral_constant_classes.html +++ /dev/null @@ -1,19 +0,0 @@ - -boost::mpl::Integral constant classes - - -

[Home]Integral constant classes

Concepts

- -

-

Types

- -


-Table of Contents
Last edited March 10, 2003 1:34 am \ No newline at end of file diff --git a/doc/ref/Iterators.html b/doc/ref/Iterators.html deleted file mode 100644 index 6b6dfd8..0000000 --- a/doc/ref/Iterators.html +++ /dev/null @@ -1,31 +0,0 @@ - -boost::mpl::Iterators - - -

[Home]Iterators

Iterators are a generic means of addressing a particular element or -range of sequential elements in a sequence. They are also the mechanism -that makes it possible to decouple algorithms from concrete compile-time -sequence implementations. Under the hood, all MPL sequence algorithms -are implemented in terms of iterators, which, in particular, means that -they will work on any custom compile-time sequence, given that the appropriate -iterator inteface is provided. -

-

Concepts

- -

-

Metafunctions

- -


-Table of Contents
Last edited March 10, 2003 1:42 am \ No newline at end of file diff --git a/doc/ref/Macros.html b/doc/ref/Macros.html deleted file mode 100644 index 1fcf851..0000000 --- a/doc/ref/Macros.html +++ /dev/null @@ -1,24 +0,0 @@ - -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/Metafunction.html b/doc/ref/Metafunction.html index f533944..c8d24d0 100644 --- a/doc/ref/Metafunction.html +++ b/doc/ref/Metafunction.html @@ -1,77 +1,10 @@ - -boost::mpl::Metafunction - - -

[Home]Metafunction

Description

-

-A metafunction is a class or a class template that represents a function invocable at compile-time. A non-nullary metafunction is invoked by instantiating the class template with particular template parameters -(metafunction arguments); the result of the metafunction application is accessible through the instantiation's nested type typedef. All metafunction's arguments must be types (i.e. only type template parameters are allowed). A metafunction can have a variable number of parameters. A nullary metafunction is represented as a class with a nested -type typename member. -

-

Valid expressions

-

- - - - -
 Expression  Expression type  
typename f::typeA type
typename f<a1,..,an>::typeA type
-

-

Expression semantics

-

- - - - -
 Expression  Complexity  Precondition  Semantics  Postcondition 
typename f::typeunspecifiedf is a nullary metafunction; f::type is a type-namef::type is the result of the metafunction invocation
typename f<a1,..,an>::typeunspecifiedf is an n-ary metafunction; a1,..,an are types; f<a1,..,an>::type is a type-namef<a1,..,an>::type is the result of the metafunction invocation with the actual arguments a1,..,an
-

-

-

Example

-

-

-// nullary metafunction
-struct always_true { typedef true_ type; };
-

-// unary metafunction -template< typename T > struct sizeof_ -{ - typedef int_< sizeof(T) > type; -}; -

-// binary metafunction -template< typename T1, typename T2 > -struct is_same -{ - typedef false_ type; -}; -

-template< typename T > -struct is_same<T,T> -{ - typedef true_ type; -}; -

-// invocations -typedef always_true::type t1; -typedef sizeof_<int>::type t2; -typedef is_same<int,char>::type t3; -

-// results checks -BOOST_STATIC_ASSERT(t1::value); -BOOST_STATIC_ASSERT(t2::value == sizeof(int)); -BOOST_STATIC_ASSERT(!t3::value); -

-

-

Models

-

-

-

-

See also

-

-Metafunctions, Metafunction Class -


-Table of Contents
Last edited March 10, 2003 3:27 am \ No newline at end of file + + + + + + +Automatic redirection failed, please go to +../index.html. + + diff --git a/doc/ref/Metafunction_Class.html b/doc/ref/Metafunction_Class.html deleted file mode 100644 index b06ef4a..0000000 --- a/doc/ref/Metafunction_Class.html +++ /dev/null @@ -1,67 +0,0 @@ - -boost::mpl::Metafunction Class - - -

[Home]Metafunction Class

Description

-

-A metafunction class is a certain form of metafunction representation that enables higher-order metaprogramming. In particular, a non-nullary metafunction class is a type with a nested class template member apply. A nullary metafunction class has the form of a nullary metafunction. A metafunction class invocation is defined as invocation of its nested apply metafunction. -

-

Valid expressions

-

- - - - -
 Expression  Expression type  
typename f::typeA type
typename f::template apply<a1,..,an>::typeA type
-

-

Expression semantics

-

- - - - -
 Expression  Complexity  Precondition  Semantics  Postcondition 
typename f::typeunspecifiedf is a nullary metafunction class; f::type is a type-namef::type is the result of the metafunction class invocation
typename f::template apply<a1,..,an>::typeunspecifiedf is an n-ary metafunction class; apply is a metafunctiontypename f::template apply<a1,..,an>::type is the result of the metafunction class invocation with the actual arguments a1,..,an
-

-

-

Example

-

-

-// nullary metafunction class
-struct always_true { typedef true_ type; };
-

-template< long N > struct le -{ - template< typename M > struct apply - { - typedef bool_< (M::value < N) > type; - }; -}; -

-// unary metafunction class -typedef le<5> less_than_5; -

-// binary metafunction class -struct less_than -{ - template< typename N1, typename N2 > struct apply - { - typedef bool_< (N1::value < N2::value) > type; - }; -}; -

-// invocations -typedef always_true::type t1; -typedef less_than_5::apply< int_<7> >::type t2; -typedef less_than::apply< int_<5>,int_<7> >::type t3; -

-// results checks -BOOST_STATIC_ASSERT(t1::value); -BOOST_STATIC_ASSERT(!t2::value); -BOOST_STATIC_ASSERT(t3::value); -

-

-

See also

-

-Metafunctions, Metafunction -


-Table of Contents
Last edited March 10, 2003 4:16 am \ No newline at end of file diff --git a/doc/ref/Metafunctions.html b/doc/ref/Metafunctions.html deleted file mode 100644 index 7a77257..0000000 --- a/doc/ref/Metafunctions.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::Metafunctions - - -

[Home]Metafunctions

Concepts

- -

-

Invocation

- -

-

Arithmetic operations

- -

-

Comparisons

- -

-

Logical operations

- -

-

Bitwise operations

- -

-

Identity operations

- -


-Table of Contents
Last edited March 10, 2003 6:39 am \ No newline at end of file diff --git a/doc/ref/Random_Access_Iterator.html b/doc/ref/Random_Access_Iterator.html deleted file mode 100644 index 2123d30..0000000 --- a/doc/ref/Random_Access_Iterator.html +++ /dev/null @@ -1,48 +0,0 @@ - -boost::mpl::Random Access Iterator - - -

[Home]Random Access Iterator

Description

-

-A Random Access Iterator is a Bidirectional Iterator that provides constant-time methods for moving forward and backward on a sequence in arbitrary-sized steps. -

-

-

Refinement of

-

-Bidirectional Iterator -

-

Valid expressions

-

-Random Access Iterator defines two new expressions and refines the ones described in Bidirectional Iterator. -

- - - - - - -
 Expression  Expression type  
typename i::nextA model of Random Access Iterator
typename i::priorA model of Random Access Iterator
typename i::template advance<n>::typeA model of Random Access Iterator
typename i::template distance<j>::typeA model of Integral Constant
-

-

Expression semantics

-

-Semantics of an expression is defined only where it is not defined in Bidirectional Iterator. -

- - - - -
 Expression  Complexity  Precondition  Semantics  Postcondition  
typename i::template advance<n>::typeAmortized constant timeIncluding i itself, there must be n::value dereferenceable or past-the-end iterators following or preceding i, depending on whether n is positive or negative.If n::value > 0, equivalent to executing i::next n::value times; if n::value < 0, equivalent to executing i::prior n::value times; if n::value == 0, this is a null operation [1].The resulting iterator is dereferenceable or past-the-end.
typename i::template distance<j>::typeAmortized constant timeEither i is reachable from j or j is reachable from i, or both.Returns an integral constant n such that i::template advance<n>::type is identical to j.
-

-

Invariants

-

-For any random access iterators i and j the following invariants always hold: -

-

-

-

See also

-

-Random Access Sequence, Bidirectional Iterator -


-Table of Contents
Last edited July 15, 2002 11:35 am \ No newline at end of file diff --git a/doc/ref/Random_Access_Sequence.html b/doc/ref/Random_Access_Sequence.html deleted file mode 100644 index d7d792e..0000000 --- a/doc/ref/Random_Access_Sequence.html +++ /dev/null @@ -1,35 +0,0 @@ - -boost::mpl::Random Access Sequence - - -

[Home]Random Access Sequence

Description

-

-A Random Access Sequence is a Bidirectional Sequence which provides iterators that satisfy the Random Access Iterator requirements. A random access sequence provides amortized constant time access to arbitrary elements. -

-

Refinement of

-

-Bidirectional Sequence -

-

Valid expressions

-

-Random Access Sequence does not define any new expressions beyond those defined in Bidirectional Sequence. However, it refines the expression requirements. -

- - - - -
 Expression  Expression type  
typename begin<s>::typeA model of Random Access Iterator
typename end<s>::typeA model of Random Access Iterator
-

-

Models

-

-

-

-

See also

-

-Bidirectional Sequence, Random Access Iterator -


-Table of Contents
Last edited July 15, 2002 2:37 pm \ No newline at end of file diff --git a/doc/ref/Rational_Constant.html b/doc/ref/Rational_Constant.html deleted file mode 100644 index ae84658..0000000 --- a/doc/ref/Rational_Constant.html +++ /dev/null @@ -1,37 +0,0 @@ - -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 deleted file mode 100644 index 2486040..0000000 --- a/doc/ref/Reference/BOOST_MPL_AUX_LAMBDA_SUPPORT.html +++ /dev/null @@ -1,50 +0,0 @@ - -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/advance.html b/doc/ref/Reference/advance.html deleted file mode 100644 index 3d94c75..0000000 --- a/doc/ref/Reference/advance.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::advance - - -

[Home]advance

Synopsis

-

-

-template<
-      typename Iterator
-    , typename N
-    >
-struct advance
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns an new iterator i such as distance< Iterator,i >::type::value == N::value. -

-

Definition

-

-

-#include "boost/mpl/advance.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
IteratorA model of Input Iterator
NA model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef advance<Iterator,N>::type i;A model of Input IteratorIterator and every iterator between Iterator and i (inclusive) is nonsingular; N::value must be nonnegative if Iterator is a model of Input Iterator or Forward IteratorEquivalent to typedef Iterator::next i1; typedef i1::next i2; .. typedef in-1::next i; if N::value > 0, and typedef Iterator::prior i1; typedef i1::prior i2; .. typedef in-1::prior i; otherwise; if N::value == 0, the algorithm has no effect.distance< Iterator,i >::type::value == N::value
-

-

Complexity

-

-Amortized constant time if Iterator is a model of Random Access Iterator, otherwise linear time. -

-

Example

-

-

-typedef vector_c<int,0,1,2,3,4,5,6,7,8,9> numbers;
-typedef begin<numbers>::type first;
-typedef end<numbers>::type last;
-typedef advance_c<first,10>::type iter1;
-typedef advance_c<last,-10>::type iter2;
-BOOST_MPL_ASSERT_IS_SAME(iter1, last);
-BOOST_MPL_ASSERT_IS_SAME(iter2, first);
-
-

-

See also

-

-Iterators, Sequence, distance, begin, end -


-Table of Contents
Last edited July 17, 2002 6:38 am \ No newline at end of file diff --git a/doc/ref/Reference/and.html b/doc/ref/Reference/and.html deleted file mode 100644 index 33ff42b..0000000 --- a/doc/ref/Reference/and.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::and_ - - -

[Home]and_

Synopsis

-

-

-template< 
-      typename F1
-    , typename F2
-    , typename F3 = true_
-    ...
-    , typename Fn = true_
-    >
-struct and_
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of short-circuit logical and (&&) operation on its arguments. -

-

Definition

-

-

-#include "boost/mpl/and.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
F1, F2, .., FnA model of nullary Metafunction
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
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

-

-

-// will generate compile-time error if invoked with T == any fundamental type
-template< typename T > struct fail
-{
-   typedef typename T::nonexistent type;
-};
-

-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 September 6, 2003 3:13 am \ No newline at end of file diff --git a/doc/ref/Reference/at.html b/doc/ref/Reference/at.html deleted file mode 100644 index 9a39f40..0000000 --- a/doc/ref/Reference/at.html +++ /dev/null @@ -1,59 +0,0 @@ - -boost::mpl::at - - -

[Home]at

Synopsis

-

-

-template<
-      typename Sequence
-    , typename N
-    >
-struct at
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns a type identical to the N-th element from the beginning of the sequence. -

-

Definition

-

-

-#include "boost/mpl/at.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to be examined.
NA model of Integral ConstantThe offset from the beginning of the sequence that specifies the element to be retrieved.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef at<Sequence,N>::type t;A type0 <= N::value < size<Sequence>::type::valueEquivalent to typedef advance< begin<Sequence>::type,N >::type::type t;
-

-

Complexity

-

-Depends on the implementation of the particular sequence it is applied to. Linear in the worst case, or amortized constant time. -

-

Example

-

-

-typedef range_c<long,10,50> range;
-BOOST_STATIC_ASSERT(at< range, int_<0> >::type::value == 10);
-BOOST_STATIC_ASSERT(at< range, int_<10> >::type::value == 20);
-BOOST_STATIC_ASSERT(at< range, int_<40> >::type::value == 50);
-
-

-

See also

-

-Forward Sequence, at_c, front, back -


-Table of Contents
Last edited March 12, 2003 6:26 am \ No newline at end of file diff --git a/doc/ref/Reference/at_c.html b/doc/ref/Reference/at_c.html deleted file mode 100644 index 2bae6a5..0000000 --- a/doc/ref/Reference/at_c.html +++ /dev/null @@ -1,59 +0,0 @@ - -boost::mpl::at_c - - -

[Home]at_c

Synopsis

-

-

-template<
-      typename Sequence
-    , long n
-    >
-struct at_c
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns a type identical to the n-th element from the beginning of the sequence. at_c<Sequence,n>::type is a shorcut notation for at< Sequence, integral_c<long,n> >::type. -

-

Definition

-

-

-#include "boost/mpl/at.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence being examined.
nAn compile-time integral constantAn offset from the beginning of the sequence that specifies the element to be retrieved.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef at_c<Sequence,n>::type t;A type0 <= n < size<Sequence>::type::valueEquivalent to typedef at< Sequence, integral_c<long,n> >::type t;
-

-

Complexity

-

-Depends on the implementation of the particular sequence it is applied to. Linear in the worst case, or amortized constant time. -

-

Example

-

-

-typedef range_c<long,10,50> range;
-BOOST_STATIC_ASSERT(at_c<range,0>::type::value == 10);
-BOOST_STATIC_ASSERT(at_c<range,10>::type::value == 20);
-BOOST_STATIC_ASSERT(at_c<range,40>::type::value == 50);
-
-

-

See also

-

-Forward Sequence, at, front, back -


-Table of Contents
Last edited October 21, 2002 4:09 am \ No newline at end of file diff --git a/doc/ref/Reference/back.html b/doc/ref/Reference/back.html deleted file mode 100644 index af0bed5..0000000 --- a/doc/ref/Reference/back.html +++ /dev/null @@ -1,64 +0,0 @@ - -boost::mpl::back - - -

[Home]back

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct back
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns a type identical to the last element in the sequence, that is, the element in a position that preceeds the position of past-the-end iterator. -

-

Definition

-

-

-#include "boost/mpl/back.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to be examined.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef back<Sequence>::type t;A typeempty<Sequence>::type::value == falseEquivalent to typedef prior< end<Sequence>::type >::type::type t;
-

-

Complexity

-

-Amortized constant time [1]. -

-

Example

-

-

-typedef range_c<int,0,1> range1;
-typedef range_c<int,0,10> range2;
-typedef range_c<int,-10,0> range3;
-

-BOOST_STATIC_ASSERT(back<range1>::type::value == 0); -BOOST_STATIC_ASSERT(back<range2>::type::value == 9); -BOOST_STATIC_ASSERT(back<range3>::type::value == -1); -

-

-

Notes

-

-[1] The algorithm is provided only if the sequence can meet the stated complexity requirements.
-

-

See also

-

-Forward Sequence, front, at, end, push_back -


-Table of Contents
Last edited July 17, 2002 3:47 am \ No newline at end of file diff --git a/doc/ref/Reference/begin.html b/doc/ref/Reference/begin.html deleted file mode 100644 index e50354e..0000000 --- a/doc/ref/Reference/begin.html +++ /dev/null @@ -1,56 +0,0 @@ - -boost::mpl::begin - - -

[Home]begin

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct begin
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns an iterator that points to the first element of the sequence. -

-

Definition

-

-

-#include "boost/mpl/begin_end.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Sequence
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef begin<Sequence>::type first;A model of Input Iteratorfirst is an iterator pointing to the first element of the Sequence; equivalent to Sequence::begin unless the algorithm has been specialized for the particular type of sequence.first is either dereferenceable or past-the-end; it is past-the-end if and only if size<Sequence>::type::value == 0.
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef vector<unsigned char,unsigned short,unsigned int, unsigned long> unsigned_types;
-typedef begin<unsigned_types>::type iter;
-BOOST_STATIC_ASSERT((boost::is_same<iter::type,unsigned char>::value));
-
-

-

See also

-

-Iterators, Sequence, end, size, empty -


-Table of Contents
Last edited July 22, 2002 2:03 am \ No newline at end of file diff --git a/doc/ref/Reference/clear.html b/doc/ref/Reference/clear.html deleted file mode 100644 index 800c9f2..0000000 --- a/doc/ref/Reference/clear.html +++ /dev/null @@ -1,60 +0,0 @@ - -boost::mpl::clear - - -

[Home]clear

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct clear
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns an empty sequence that preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/clear.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible Sequence
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef clear<Sequence>::type s;A model of Extensible SequenceEquivalent to typedef erase<Sequence, begin<Sequence>::type, end<Sequence>::type>::type s;empty<s>::type::value == true
-

-

Complexity

-

-Amortized constant time [1]. -

-

Example

-

-

-typedef list_c<int,1,3,5,7,9,11> odds;
-typedef clear<odds>::type nothing;
-BOOST_STATIC_ASSERT(empty<nothing>::type::value);
-
-

-

Notes

-

-[1] The algorithm is provided only if the sequence can meet the stated complexity requirements.
-

-

See also

-

-Extensible Sequence, erase, empty, begin, end -


-Table of Contents
Last edited July 17, 2002 3:58 am \ No newline at end of file diff --git a/doc/ref/Reference/contains.html b/doc/ref/Reference/contains.html deleted file mode 100644 index 0d7bd9a..0000000 --- a/doc/ref/Reference/contains.html +++ /dev/null @@ -1,58 +0,0 @@ - -boost::mpl::contains - - -

[Home]contains

Synopsis

-

-

-template<
-      typename Sequence
-    , typename T
-    >
-struct contains
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns true_ if one or more elements in Sequence are identical to T, and false_ otherwise. -

-

Definition

-

-

-#include "boost/mpl/contains.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to be examined.
TA typeThe type to search for.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef contains<Sequence,T>::type c;A model of bool Integral ConstantEquivalent to typedef not_< is_same< find<Sequence,T>::type, end<Sequence>::type > >::type c;
-

-

Complexity

-

-Linear. At most size<Sequence>::value comparisons for identity. -

-

Example

-

-

-typedef vector<char,int,unsigned,long,unsigned long> types;
-typedef contains<types,bool>::type result;
-BOOST_STATIC_ASSERT(!result::value);
-
-

-

See also

-

-Algorithms, find, find_if, count, count_if -


-Table of Contents
Last edited March 10, 2003 5:33 am \ No newline at end of file diff --git a/doc/ref/Reference/copy.html b/doc/ref/Reference/copy.html deleted file mode 100644 index 1bb52fd..0000000 --- a/doc/ref/Reference/copy.html +++ /dev/null @@ -1,70 +0,0 @@ - -boost::mpl::copy - - -

[Home]copy

Synopsis

-

-

-template<
-      typename Sequence
-    , typename State
-    , typename BinaryOp
-    >
-struct copy
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-copy is, in fact, just another name for fold. It was introduced for symmetry with copy_if [1], and because it's a nice name for one of the typical fold applications, that is, copying the content of one sequence into another - see the example below. -

-

Definition

-

-

-#include "boost/mpl/copy.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of SequenceA sequence to iterate.
StateA typeThe initial state for the first BinaryOp application.
BinaryOpA model of [Lambda Function]The operation to be executed on forward traversal.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef copy<Sequence,T,Op>::type s;A typeEquivalent to typedef fold< Sequence,T,Op >::type s;.
-

-

Complexity

-

-Linear. Exactly size<Sequence>::type::value applications of BinaryOp. -

-

Example

-

-

-typedef vector_c<int,0,1,2,3,4,5,6,7,8,9> numbers;
-typedef copy<
-      range_c<int,10,20>
-    , numbers
-    , push_back<_,_>
-    >::type result;
-

-BOOST_STATIC_ASSERT(size<result>::value == 20); -BOOST_STATIC_ASSERT((equal< result,range_c<int,0,20> >::type::value)); -

-

-

Notes

-

-[1] In case if you wonder why copy_if, in its turn, wasn't just called fold_if, - something that would allow to eliminate the family of copy algorithms completely - these two have quite different semantics.
-

-

See also

-

-Algorithms, copy_if, copy_backward, copy_backward_if, fold, fold_backward -


-Table of Contents
Last edited May 20, 2003 1:36 am \ No newline at end of file diff --git a/doc/ref/Reference/copy_backward.html b/doc/ref/Reference/copy_backward.html deleted file mode 100644 index c2ae085..0000000 --- a/doc/ref/Reference/copy_backward.html +++ /dev/null @@ -1,70 +0,0 @@ - -boost::mpl::copy_backward - - -

[Home]copy_backward

Synopsis

-

-

-template<
-      typename Sequence
-    , typename State
-    , typename BinaryOp
-    >
-struct copy_backward
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-copy_backward is, in fact, just another name for fold_backward. It was introduced for symmetry with copy_backward_if [1], and because it's a nice name for one of the typical fold_backward applications, that is, copying the content of one sequence into another - see the example below. -

-

Definition

-

-

-#include "boost/mpl/copy_backward.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of SequenceA sequence to iterate.
StateA typeThe initial state for the first BinaryOp application.
BinaryOpA model of [Lambda Function]The operation to be executed on backward traversal.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef copy_backward<Sequence,T,Op>::type s;A typeEquivalent to typedef fold_backward< Sequence,T,Op >::type s;.
-

-

Complexity

-

-Linear. Exactly size<Sequence>::type::value applications of BinaryOp. -

-

Example

-

-

-typedef list_c<int,10,11,12,13,14,15,16,17,18,19>::type numbers;
-typedef copy_backward<
-      range_c<int,0,10>
-    , push_front<_,_>
-    , numbers
-    >::type result;
-

-BOOST_STATIC_ASSERT(size<result>::value == 20); -BOOST_STATIC_ASSERT((equal< result,range_c<int,0,20> >::type::value)); -

-

-

Notes

-

-[1] In case if you wonder why copy_backward_if, in its turn, wasn't just called fold_backward_if, - something that would allow to eliminate the family of copy_backward algorithms completely - these two have quite different semantics.
-

-

See also

-

-Algorithms, copy_backward_if, copy, copy_if, fold, fold_backward -


-Table of Contents
Last edited July 19, 2002 2:11 am \ No newline at end of file diff --git a/doc/ref/Reference/copy_backward_if.html b/doc/ref/Reference/copy_backward_if.html deleted file mode 100644 index 60b1883..0000000 --- a/doc/ref/Reference/copy_backward_if.html +++ /dev/null @@ -1,70 +0,0 @@ - -boost::mpl::copy_backward_if - - -

[Home]copy_backward_if

Synopsis

-

-

-template<
-      typename Sequence
-    , typename State
-    , typename BinaryOp
-    , typename Pred
-    >
-struct copy_backward_if
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of the successive application of BinaryOp to the result of the previous BinaryOp invocation (State if it's the first call) and every element in the range [begin<Sequence>::type,end<Sequence>::type) that satisfies the predicate Pred, in the reverse order. A typical application for copy_backward_if is to conditionally copy the content of one sequence into another - see the example below. -

-

Definition

-

-

-#include "boost/mpl/copy_backward_if.hpp"
-
-

-

Parameters

- - - - - - -
 Parameter  Requirement  Description  
SequenceA model of SequenceA sequence to iterate.
StateA typeThe initial state for the first BinaryOp application.
BinaryOpA model of [Lambda Function]The operation to be executed on backward traversal.
PredAn unary Predicate [Lambda Expression]The copying condition.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef copy_backward_if<Sequence,T,Op,Pred>::type s;A typeEquivalent to typedef lambda<Op>::type op; typedef lambda<Pred>::type pred; typedef fold_backward< Sequence,T,if_< apply<pred,_2>, apply<op,_1,_2>, _1 > >::type s;.
-

-

Complexity

-

-Linear. Exactly size<Sequence>::type::value applications of Pred, and at most size<Sequence>::type::value applications of BinaryOp. -

-

Example

-

-

-typedef list_c<int,0,1,2,3,4,5,6,7,8,9>::type numbers;
-typedef list_c<int,0,1,2,3,4>::type answer;
-typedef copy_backward_if<
-      numbers
-    , list_c<int>
-    , push_front<_1,_2>
-    , less<_1,int_<5> >
-    >::type result;
-

-BOOST_STATIC_ASSERT(size<result>::value == 5); -BOOST_STATIC_ASSERT((equal<result,answer>::type::value)); -

-

-

See also

-

-Algorithms, copy_backward, copy_if, copy, fold, fold_backward -


-Table of Contents
Last edited March 12, 2003 6:29 am \ No newline at end of file diff --git a/doc/ref/Reference/copy_if.html b/doc/ref/Reference/copy_if.html deleted file mode 100644 index b80347e..0000000 --- a/doc/ref/Reference/copy_if.html +++ /dev/null @@ -1,70 +0,0 @@ - -boost::mpl::copy_if - - -

[Home]copy_if

Synopsis

-

-

-template<
-      typename Sequence
-    , typename State
-    , typename BinaryOp
-    , typename Pred
-    >
-struct copy_if
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of the successive application of BinaryOp to the result of the previous BinaryOp invocation (State if it's the first call) and every element in the range [begin<Sequence>::type,end<Sequence>::type) that satisfies the predicate Pred, in the linear order. A typical application for copy_if is to conditionally copy the content of one sequence into another - see the example below. -

-

Definition

-

-

-#include "boost/mpl/copy_if.hpp"
-
-

-

Parameters

- - - - - - -
 Parameter  Requirement  Description  
SequenceA model of SequenceA sequence to iterate.
StateA typeThe initial state for the first BinaryOp application.
BinaryOpA model of [Lambda Function]The operation to be executed on forward traversal.
PredAn unary Predicate [Lambda Expression]The copying condition.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef copy_if<Sequence,T,Op,Pred>::type s;A typeEquivalent to typedef lambda<Op>::type op; typedef lambda<Pred>::type pred; typedef fold< Sequence,T,if_< apply<pred,_2>, apply<op,_1,_2>, _1 > >::type s;.
-

-

Complexity

-

-Linear. Exactly size<Sequence>::type::value applications of Pred, and at most size<Sequence>::type::value applications of BinaryOp. -

-

Example

-

-

-typedef list_c<int,0,1,2,3,4,5,6,7,8,9>::type numbers;
-typedef list_c<int,0,1,2,3,4>::type answer;
-typedef copy_if<
-      numbers
-    , vector_c<int>
-    , push_back<_1,_2>
-    , less<_1,int_<5> >
-    >::type result;
-

-BOOST_STATIC_ASSERT(size<result>::value == 5); -BOOST_STATIC_ASSERT((equal<result,answer>::type::value)); -

-

-

See also

-

-Algorithms, copy, copy_backward_if, copy_backward, fold, iter_fold -


-Table of Contents
Last edited March 12, 2003 6:30 am \ No newline at end of file diff --git a/doc/ref/Reference/count.html b/doc/ref/Reference/count.html deleted file mode 100644 index 847e8c2..0000000 --- a/doc/ref/Reference/count.html +++ /dev/null @@ -1,60 +0,0 @@ - -boost::mpl::count - - -

[Home]count

Synopsis

-

-

-template<
-      typename Sequence
-    , typename T
-    >
-struct count
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the number of elements in a Sequence that are identical to T. -

-

Definition

-

-

-#include "boost/mpl/count.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to be examined.
TA typeThe type to be searched for.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef count<Sequence,T>::type n;A model of Integral ConstantEquivalent to typedef count_if< Sequence,is_same<_,T> >::type n;
-

-

-

Complexity

-

-Linear. Exactly size<Sequence>::value comparisons for identity. -

-

Example

-

-

-typedef list<int,char,long,short,char,short,double,long> types;
-typedef find<types, short>::type iter;
-BOOST_STATIC_ASSERT((is_same<iter::type,short>::type::value));
-BOOST_STATIC_ASSERT((distance< begin<types>::type,iter >::type::value == 3));
-
-

-

See also

-

-Algorithms, count_if, find, find_if, contains -


-Table of Contents
Last edited December 12, 2002 2:05 am \ No newline at end of file diff --git a/doc/ref/Reference/count_if.html b/doc/ref/Reference/count_if.html deleted file mode 100644 index 2d5e0d1..0000000 --- a/doc/ref/Reference/count_if.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::count_if - - -

[Home]count_if

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pred
-    >
-struct count_if
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the number of elements in a Sequence that satisfy the predicate Pred. -

-

Definition

-

-

-#include "boost/mpl/count_if.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to be examined.
PredA model of Predicate [Lambda Expression]The count condition.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef count_if<Sequence,Pred>::type n;A model of Integral ConstantEquivalent to typedef lambda<Pred>::type pred; typedef fold< Sequence,integral_c<unsigned long,0>,if_<pred,next<_1>,_1> >::type n;
-

-

-

Complexity

-

-Linear. Exactly size<Sequence>::value applications of Pred. -

-

Example

-

-

-typedef list<int,char,long,short,char,long,double,long> types;
-

-BOOST_STATIC_ASSERT((count_if< types,boost::is_float<_> >::type::value == 1)); -BOOST_STATIC_ASSERT((count_if< types,boost::is_same<_,char> >::type::value == 2)); -BOOST_STATIC_ASSERT((count_if< types,boost::is_same<_,void> >::type::value == 0)); -

-

-

See also

-

-Algorithms, count, find_if, find, contains -


-Table of Contents
Last edited July 17, 2002 4:32 am \ No newline at end of file diff --git a/doc/ref/Reference/deref.html b/doc/ref/Reference/deref.html deleted file mode 100644 index 4709b0f..0000000 --- a/doc/ref/Reference/deref.html +++ /dev/null @@ -1,56 +0,0 @@ - -boost::mpl::deref - - -

[Home]deref

Synopsis

-

-

-template<
-      typename Iterator
-    >
-struct deref
-{
-    typedef typename Iterator::type type;
-};
-
-

-

Description

-

-Dereferences an iterator. -

-

Definition

-

-

-#include "boost/mpl/deref.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
IteratorA model of Trivial IteratorAn iterator to be dereferenced.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef deref<Iterator>::type t;A typeEquivalent to typedef Iterator::type t;.Iterator is dereferenceable
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list<char,short,int,long> types;
-typedef begin<types>::type iter;
-BOOST_STATIC_ASSERT(boost::is_same< deref<iter>::type,char >::value));
-
-

-

See also

-

-Iterators, begin/end -


-Table of Contents
Last edited March 10, 2003 5:30 am \ No newline at end of file diff --git a/doc/ref/Reference/distance.html b/doc/ref/Reference/distance.html deleted file mode 100644 index b698c70..0000000 --- a/doc/ref/Reference/distance.html +++ /dev/null @@ -1,56 +0,0 @@ - -boost::mpl::distance - - -

[Home]distance

Synopsis

-

-

-template<
-      typename First
-    , typename Last
-    >
-struct distance
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Finds the distance between First and Last, that is, an Integral Constant D such as advance< First,D >::type is identical to Last. -

-

Definition

-

-

-#include "boost/mpl/distance.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
First, LastA model of Input Iterator
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef distance<First,Last>::type d;A model of Integral Constant[First, Last) is a valid rangeis_same< advance< First,d >::type, Last >::value
-

-

Complexity

-

-Amortized constant time if Iterator is a model of Random Access Iterator, otherwise linear time. -

-

Example

-

-

-typedef range_c<int,0,10>::type range;
-BOOST_STATIC_ASSERT((distance< begin<range>::type,end<range>::type >::type::value == 10));
-
-

-

See also

-

-Iterators, Sequence, advance, begin, end -


-Table of Contents
Last edited July 17, 2002 6:47 am \ No newline at end of file diff --git a/doc/ref/Reference/divides.html b/doc/ref/Reference/divides.html deleted file mode 100644 index c7c4a21..0000000 --- a/doc/ref/Reference/divides.html +++ /dev/null @@ -1,64 +0,0 @@ - -boost::mpl::divides - - -

[Home]divides

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    , typename T3 = integral_c<int,1>
-    , ...
-    , typename Tn = integral_c<int,1>
-    >
-struct divides
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the quotient of its arguments [1]. -

-

Definition

-

-

-#include "boost/mpl/divides.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2, .., TnA model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef divides<t1,t2,..,tn>::type quot;A model of Integral Constantt2::value != 0, t3::value != 0, .., tn::value != 0Equivalent to typedef integral_c<typeof(t1::value / t2::value .. / tn::value), t1::value / t2::value .. / tn::value > quot;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef divides< integral_c<short,-10>, integral_c<long,3> >::type quot;
-BOOST_STATIC_ASSERT(quot::value == -3));
-BOOST_MPL_ASSERT_IS_SAME(quot::value_type, long);
-
-

-

Notes

-

-[1] The divides metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, multiplies, modulus, plus, minus, negate -


-Table of Contents
Last edited March 10, 2003 6:32 am \ No newline at end of file diff --git a/doc/ref/Reference/empty.html b/doc/ref/Reference/empty.html deleted file mode 100644 index 14ee143..0000000 --- a/doc/ref/Reference/empty.html +++ /dev/null @@ -1,59 +0,0 @@ - -boost::mpl::empty - - -

[Home]empty

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct empty
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns an Integral Constant c such that c::value == true if and only if the sequence is empty. -

-

Definition

-

-

-#include "boost/mpl/empty.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Sequence
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef empty<Sequence>::type c;A model of bool Integral ConstantEquivalent to typedef is_same< begin<Sequence>::type,end<Sequence>::type >::type c;
-

-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef range_c<int,0,0> empty_range;
-typedef list<long,float,double> types;
-

-BOOST_STATIC_ASSERT(empty<empty_range>::value) -BOOST_STATIC_ASSERT(!empty<types>::value) -

-

-

See also

-

-Sequence, size, begin, end -


-Table of Contents
Last edited July 17, 2002 3:52 am \ No newline at end of file diff --git a/doc/ref/Reference/end.html b/doc/ref/Reference/end.html deleted file mode 100644 index bac4d50..0000000 --- a/doc/ref/Reference/end.html +++ /dev/null @@ -1,57 +0,0 @@ - -boost::mpl::end - - -

[Home]end

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct end
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the past-the-end iterator to the sequence. -

-

Definition

-

-

-#include "boost/mpl/begin_end.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Sequence
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition  
typedef end<Sequence>::type last;A model of Input Iteratorlast is an iterator pointing one past the last element in the Sequence; equivalent to Sequence::end unless the algorithm has been specialized for the particular type of sequence.last is past-the-end.
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list<long> short_list;
-typedef begin<short_list>::type first;
-typedef end<short_list>::type last;
-BOOST_STATIC_ASSERT((boost::is_same<first::next,last>::value));
-
-

-

See also

-

-Iterators, Sequence, begin, size, empty -


-Table of Contents
Last edited July 22, 2002 4:30 pm \ No newline at end of file diff --git a/doc/ref/Reference/equal.html b/doc/ref/Reference/equal.html deleted file mode 100644 index 8976cbd..0000000 --- a/doc/ref/Reference/equal.html +++ /dev/null @@ -1,59 +0,0 @@ - -boost::mpl::equal - - -

[Home]equal

Synopsis

-

-

-template<
-      typename Sequence1
-    , typename Sequence2
-    , typename Pred = is_same<_1,_2>
-    >
-struct equal
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns true_ if the two sequences Sequence1 and Sequence2 are identical when compared element-by-element, and otherwise returns false_. -

-

Definition

-

-

-#include "boost/mpl/equal.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
Sequence1, Sequence2A model of Forward SequenceSequences to compare.
PredA binary Predicate [Lambda Expression]The comparison metafunction.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef equal<Sequence1,Sequence2,Pred>::type c;A model of Integral Constantc::value == true is and only if size<Sequence1>::type::value == size<Sequence2>::type::value and for every iterator i in [begin<Sequence>::type,end<Sequence>::type) i::type is identical to advance< begin<Sequence2>::type, distance< begin<Sequence1>::type,i >::type >::type.
-

-

Complexity

-

-Linear. At most size<Sequence1>::value comparisons. -

-

Example

-

-

-typedef vector<char,int,unsigned,long,unsigned long> s1;
-typedef list<char,int,unsigned,long,unsigned long> s2;
-BOOST_STATIC_ASSERT((equal<s1,s2>::type::value));
-
-

-

See also

-

-Algorithms, count, count_if -


-Table of Contents
Last edited March 10, 2003 5:39 am \ No newline at end of file diff --git a/doc/ref/Reference/equal_to.html b/doc/ref/Reference/equal_to.html deleted file mode 100644 index 4093487..0000000 --- a/doc/ref/Reference/equal_to.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::equal_to - - -

[Home]equal_to

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    >
-struct equal_to
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns true_ if T1::value == T2::value and false_ otherwise [1]. -

-

Definition

-

-

-#include "boost/mpl/equal_to.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2A model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef equal_to<t1,t2>::type c;A model of bool Integral ConstantEquivalent to typedef bool_<(t1::value == t2::value)> c;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list_c<int,1,2,3,5,7,12,19,31> fibonacci;
-typedef find_if< fibonacci, equal_to<_1,int_<12> > >::type iter;
-BOOST_STATIC_ASSERT(equal_to< distance< begin<fibonacci>::type, iter >::type, int_<5> >::type::value));
-
-

-

Notes

-

-[1] The equal_to metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, not_equal_to, less, less_equal, greater, greater_equal -


-Table of Contents
Last edited March 10, 2003 6:26 am \ No newline at end of file diff --git a/doc/ref/Reference/erase.html b/doc/ref/Reference/erase.html deleted file mode 100644 index c7ca5dd..0000000 --- a/doc/ref/Reference/erase.html +++ /dev/null @@ -1,65 +0,0 @@ - -boost::mpl::erase - - -

[Home]erase

Synopsis

-

-

-template<
-      typename Sequence
-    , typename First
-    , typename Last = typename First::next
-    >
-struct erase
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-erase performs a removal of one or several consequent elements in the sequence starting from an arbitrary position. The algorithm returns a new sequence which contains all the elements in the ranges [begin<Sequence>::type, First) and [Last, end<Sequence>::type). The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/erase.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  Default value  
SequenceA model of Extensible SequenceA sequence to handle the erase operation.
FirstA model of Forward IteratorIterator to the beginning of the range to be erased.
LastA model of Forward IteratorPast-the-end iterator of the range to be erased.typename First::next
-

-

Expression semantics

-

- - - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef erase<Sequence,pos>::type s;A model of Extensible Sequencepos is a dereferenceable iterator in Sequence.Returns a new sequence which contains all the elements in the ranges [begin<Sequence>::type, pos) and [next<pos>::type, end<Sequence>::type).size<s>::type::value == size<Sequence>::type::value - 1; the relative order of the elements in s is the same as in Sequence.
typedef erase<Sequence,first,last>::type s;A model of Extensible Sequence[first,last) is a valid range in Sequence.Returns a new sequence which contains all the elements in the ranges [begin<Sequence>::type, first) and [last, end<Sequence>::type).size<s>::type::value == size<Sequence>::type::value - distance<first,last>::type::value; the relative order of the elements in s is the same as in Sequence.
-

-

Complexity

-

-The range form has linear complexity. The complexity of single-element erase is sequence dependent (linear in the worst case, or amortized constant time). -

-

Example

-

-

-typedef list_c<int,1,0,5,1,7,5,0,5> values;
-typedef find< values, integral_c<int,7> >::type pos;
-typedef erase<values,pos>::type result_seq;
-BOOST_STATIC_ASSERT(size<result_seq>::type::value == 7);
-

-typedef find<result, integral_c<int,7> >::type result_iter; -BOOST_MPL_ASSERT_IS_SAME(result_iter, end<result_seq>::type); -

-

-

See also

-

-Extensible Sequence, pop_front, pop_back, insert -


-Table of Contents
Last edited July 17, 2002 3:59 am \ No newline at end of file diff --git a/doc/ref/Reference/erase_range.html b/doc/ref/Reference/erase_range.html deleted file mode 100644 index 8bee8d9..0000000 --- a/doc/ref/Reference/erase_range.html +++ /dev/null @@ -1,63 +0,0 @@ - -boost::mpl::erase_range - - -

[Home]erase_range

Synopsis -

-

-

-template<
-      typename Sequence
-    , typename First
-    , typename Last
-    >
-struct erase_range
-{
-    typedef implementation-defined type;
-};
-
-

-

Description -

-

-[to do] -

-

Definition -

-

-

-#include "boost/mpl/erase_range.hpp"
-
-

-

Parameters -

- - - -
 Parameter  Requirement  Description  Default argument  
ParamA model of Concept[to do][to do]
-

-

Members -

- - - -
 Member  Description  
type[to do]
-

-

Complexity -

-

-[to do] -

-

Example -

-

-

-[to do]
-
-

-

See also -

-

-Algorithms, erase, erase_all, erase_if -


-Table of Contents
Last edited February 19, 2002 3:55 am \ No newline at end of file diff --git a/doc/ref/Reference/filter_view.html b/doc/ref/Reference/filter_view.html deleted file mode 100644 index e5016a6..0000000 --- a/doc/ref/Reference/filter_view.html +++ /dev/null @@ -1,63 +0,0 @@ - -boost::mpl::filter_view - - -

[Home]filter_view

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pred
-    >
-struct filter_view
-{
-    // unspecified
-};
-
-

-

Description

-

-filter_view is a sequence wrapper that allows one to operate on the filtered sequence without actually creating one. -

-

Definition

-

-

-#include "boost/mpl/filter_view.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of SequenceA sequence to wrap.
PredA model of unary Predicate [Lambda Expression]A filtering predicate.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef filter_view<Sequence,Pred> s;A model of Sequences prodives iterators to all the elements in the range [begin<Sequence>::type,end<Sequence>::type) that satisfy the predicate Pred.size<s>::type::value == count_if< Sequence,Pred >::type::value.
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-Finds the largest floating type in a sequence. -

-

-typedef list<int,float,long,float,char[50],long double,char> types;
-typedef max_element<
-      transform_view< filter_view< types,boost::is_float<_> >, size_of<_> >
-    >::type iter;
-

-BOOST_STATIC_ASSERT((is_same<iter::base::type,long double>::value)); -

-

-

See also

-

-Sequences, transform_view, joint_view, zip_view, max_element -


-Table of Contents
Last edited March 10, 2003 4:42 am \ No newline at end of file diff --git a/doc/ref/Reference/find.html b/doc/ref/Reference/find.html deleted file mode 100644 index 17108e9..0000000 --- a/doc/ref/Reference/find.html +++ /dev/null @@ -1,58 +0,0 @@ - -boost::mpl::find - - -

[Home]find

Synopsis

-

-

-template<
-      typename Sequence
-    , typename T
-    >
-struct find
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Finds the first occurrence of type T in a Sequence. -

-

Definition

-

-

-#include "boost/mpl/find.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to search in.
TA typeThe type to search for.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef find<Sequence,T>::type i;A model of Forward IteratorEquivalent to typedef find_if<Sequence, is_same<_,T> >::type i;
-

-

Complexity

-

-Linear. At most size<Sequence>::value comparisons for identity. -

-

Example

-

-

-typedef vector<char,int,unsigned,long,unsigned long> types;
-typedef find<types,unsigned>::type iter;
-BOOST_STATIC_ASSERT(iter::pos::value == 2);
-
-

-

See also

-

-Algorithms, find_if, contains, count, count_if -


-Table of Contents
Last edited September 15, 2002 7:24 pm \ No newline at end of file diff --git a/doc/ref/Reference/find_if.html b/doc/ref/Reference/find_if.html deleted file mode 100644 index 5d5b6a7..0000000 --- a/doc/ref/Reference/find_if.html +++ /dev/null @@ -1,58 +0,0 @@ - -boost::mpl::find_if - - -

[Home]find_if

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pred
-    >
-struct find_if
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Finds the first element in a Sequence that satisfies the predicate Pred. -

-

Definition

-

-

-#include "boost/mpl/find_if.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to search in.
PredA model of Predicate [Lambda Expression]A search condition.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef find_if<Sequence,Pred>::type i;A model of Forward Iteratori is the first iterator in the range [begin<Sequence>::type, end<Sequence>::type) such that apply< lambda<Pred>::type,i::type >::type::value == true; i is identical to end<Sequence>::type, if no such iterator exists.
-

-

Complexity

-

-Linear. At most size<Sequence>::value applications of Pred. -

-

Example

-

-

-typedef vector<char,int,unsigned,long,unsigned_long> types;
-typedef find_if<types, is_same<_1,unsigned> >::type iter;
-BOOST_STATIC_ASSERT(iter::pos::value == 2);
-
-

-

See also

-

-Algorithms, find, contains, count, count_if -


-Table of Contents
Last edited September 15, 2002 7:24 pm \ No newline at end of file diff --git a/doc/ref/Reference/fold.html b/doc/ref/Reference/fold.html deleted file mode 100644 index 73417b2..0000000 --- a/doc/ref/Reference/fold.html +++ /dev/null @@ -1,65 +0,0 @@ - -boost::mpl::fold - - -

[Home]fold

Synopsis

-

-

-template<
-      typename Sequence
-    , typename State
-    , typename ForwardOp
-    >
-struct fold
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of the successive application of binary ForwardOp to the result of the previous ForwardOp invocation (State if it's the first call) and every element of the sequence in the range [begin<Sequence>::type,end<Sequence>::type) in the linear order. -

-

Definition

-

-

-#include "boost/mpl/fold.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of SequenceA sequence to iterate.
StateA typeThe initial state for the first ForwardOp application.
ForwardOpA model of [Lambda Function]The operation to be executed on forward traversal.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef fold<Sequence,T,Op>::type t;A typeEquivalent to typedef lambda<Op>::type op; typedef iter_fold< Sequence,T,apply<op,_1,deref<_2> > >::type t;.
-

-

Complexity

-

-Linear. Exactly size<Sequence>::type::value applications of ForwardOp. -

-

Example

-

-

-typedef vector<long,float,short,double,float,long,long double> types;
-typedef typename fold<
-      types
-    , integral_c<long, 0>
-    , if_< is_float<_2>,next<_1>,_1 >
-    >::type number_of_floats;
-

-BOOST_STATIC_ASSERT(number_of_floats::value == 4); -

-

-

See also

-

-Algorithms, fold_backward, iter_fold, iter_fold_backward, copy, copy_if -


-Table of Contents
Last edited December 12, 2002 4:42 pm \ No newline at end of file diff --git a/doc/ref/Reference/fold_backward.html b/doc/ref/Reference/fold_backward.html deleted file mode 100644 index c624e7e..0000000 --- a/doc/ref/Reference/fold_backward.html +++ /dev/null @@ -1,75 +0,0 @@ - -boost::mpl::fold_backward - - -

[Home]fold_backward

Synopsis

-

-

-template<
-      typename Sequence
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp = _1
-    >
-struct fold_backward
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of the successive application of binary BackwardOp to the result of the previous BackwardOp invocation (State if it's the first call) and every element in the range [begin<Sequence>::type,end<Sequence>::type) in the reverse order. If ForwardOp is provided, then it's applied on forward traversal to form the result which is passed to the first BackwardOp call. -

-

Definition

-

-

-#include "boost/mpl/fold_backward.hpp"
-
-

-

Parameters

- - - - - - -
 Parameter  Requirement  Description  Default value  
SequenceA model of SequenceA sequence to iterate.
StateA typeThe initial state for the first BackwardOp/ForwardOp application.
BackwardOpA model of [Lambda Function]The operation to be executed on backward traversal.
ForwardOpA model of [Lambda Function]The operation to be executed on forward traversal.arg<1>
-

-

Expression semantics

-

- - - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef fold_backward< Sequence,T,BackwardOp >::type t;A typeEquivalent to typedef lambda<BackwardOp>::type bk_op; typedef begin<Sequence>::type i1; typedef i1::next i2; ...; typedef in::next last; typedef apply<bk_op,T,in::type>::type tn; typedef apply<bk_op,tn,in-1::type>::type tn-1; ...; typedef apply<bk_op,t2,i1::type>::type t1; typedef t1 t, where n == size<Sequence>::type::value and last is identical to end<Sequence>::type; Equivalent to typedef T t; if the sequence is empty.
typedef fold_backward< Sequence,T,BackwardOp,ForwardOp >::type t;A typeEquivalent to typedef fold_backward<Sequence, fold<Sequence,State,ForwardOp>::type, BackwardOp>::type t;.
-

-

Complexity

-

-Linear. Exactly size<Sequence>::type::value applications of BackwardOp and ForwardOp. -

-

Example

-

-Removes negative elements from a sequence [1]. -

-

-typedef list_c<int,5,-1,0,-7,-2,0,-5,4> numbers;
-typedef list_c<int,-1,-7,-2,-5> negatives;
-typedef fold_backward<
-      numbers
-    , list_c<int>
-    , if_< less< _2,int_<0> >, push_front<_1,_2,>, _1 >
-    >::type result;
-

-BOOST_STATIC_ASSERT(equal< negatives,result >::type::value); -

-

-

Notes

-

-[1] See remove_if for a more compact way to do this.
-

-

See also

-

-Algorithms, fold, iter_fold_backward, iter_fold, copy, copy_backward -


-Table of Contents
Last edited March 12, 2003 6:30 am \ No newline at end of file diff --git a/doc/ref/Reference/front.html b/doc/ref/Reference/front.html deleted file mode 100644 index eb7c409..0000000 --- a/doc/ref/Reference/front.html +++ /dev/null @@ -1,60 +0,0 @@ - -boost::mpl::front - - -

[Home]front

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct front
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns a type identical to the first element in the sequence. -

-

Definition

-

-

-#include "boost/mpl/front.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to be examined.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef front<Sequence>::type t;A typeempty<Sequence>::type::value == falseEquivalent to typedef begin<Sequence>::type::type t;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list<long>::type types1;
-typedef list<int,long>::type types2;
-typedef list<char,int,long>::type types3;
-

-BOOST_MPL_ASSERT_IS_SAME(front<types1>::type, long); -BOOST_MPL_ASSERT_IS_SAME(front<types2>::type, int); -BOOST_MPL_ASSERT_IS_SAME(front<types3>::type, char); -

-

-

See also

-

-Forward Sequence, back, at, push_front, begin, empty -


-Table of Contents
Last edited July 17, 2002 3:48 am \ No newline at end of file diff --git a/doc/ref/Reference/greater.html b/doc/ref/Reference/greater.html deleted file mode 100644 index bdf9376..0000000 --- a/doc/ref/Reference/greater.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::greater - - -

[Home]greater

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    >
-struct greater
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns true_ if T1::value > T2::value and false_ otherwise [1]. -

-

Definition

-

-

-#include "boost/mpl/greater.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2A model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef greater<t1,t2>::type c;A model of bool Integral ConstantEquivalent to typedef bool_<(t1::value > t2::value)> c;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list_c<int,1,2,3,5,7,12,19,31> fibonacci;
-typedef find_if< fibonacci, greater<_1,int_<10> > >::type iter;
-BOOST_STATIC_ASSERT(iter::type::value == 12));
-
-

-

Notes

-

-[1] The greater metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, greater_equal, less, less_equal, equal_to, not_equal_to -


-Table of Contents
Last edited March 10, 2003 6:24 am \ No newline at end of file diff --git a/doc/ref/Reference/greater_equal.html b/doc/ref/Reference/greater_equal.html deleted file mode 100644 index 2997edb..0000000 --- a/doc/ref/Reference/greater_equal.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::greater_equal - - -

[Home]greater_equal

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    >
-struct greater_equal
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns true_ if T1::value > T2::value and false_ otherwise [1]. -

-

Definition

-

-

-#include "boost/mpl/greater_equal.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2A model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef greater_equal<t1,t2>::type c;A model of bool Integral ConstantEquivalent to typedef bool_<(t1::value >= t2::value)> c;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list_c<int,0,1,2,3,4,5,6,7,8,9> numbers;
-typedef remove_if< numbers, greater_equal<_1,int_<5> > >::type result;
-BOOST_STATIC_ASSERT(equal< result,range_c<int,0,5> >::type::value));
-
-

-

Notes

-

-[1] The greater_equal metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, greater, less, less_equal, equal_to, not_equal_to -


-Table of Contents
Last edited March 10, 2003 6:25 am \ No newline at end of file diff --git a/doc/ref/Reference/insert.html b/doc/ref/Reference/insert.html deleted file mode 100644 index 56ccc1c..0000000 --- a/doc/ref/Reference/insert.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::insert - - -

[Home]insert

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pos
-    , typename T
-    >
-struct insert
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-insert performs an insertion of type T at an arbitrary position in the sequence. The algorithm returns a new sequence which contains all the elements from Sequence plus the type T at the distance< begin<Sequence>::type,Pos >::type position from the beginning. The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/insert.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceA sequence to handle the insert operation.
PosA model of Forward IteratorAn insert position in the Sequence.
TA typeThe element to be inserted.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef insert<Sequence,pos,T>::type s;A model of Extensible Sequencepos is a valid iterator in Sequence.s contains T at the distance< begin<Sequence>::type,pos >::type position.size<s>::type::value == size<Sequence>::type::value + 1; at< distance< begin<Sequence>::type,pos >::type, s >::type is identical to T; the relative order of the elements in s is the same as in Sequence.
-

-

Complexity

-

-Sequence dependent. Linear in the worst case, or amortized constant time. -

-

Example

-

-

-typedef list_c<int,0,1,3,4,5,6,7,8,9> numbers;
-typedef find< numbers,integral_c<int,3> >::type pos;
-typedef insert< numbers,pos,integral_c<int,2> >::type range;
-BOOST_STATIC_ASSERT(size<range>::type::value == 10);
-BOOST_STATIC_ASSERT((equal< range,range_c<int,0,10> >::type::value));
-
-

-

See also

-

-Extensible Sequence, insert_range, push_front, push_back, erase -


-Table of Contents
Last edited July 17, 2002 5:17 am \ No newline at end of file diff --git a/doc/ref/Reference/insert_range.html b/doc/ref/Reference/insert_range.html deleted file mode 100644 index 10bdf7c..0000000 --- a/doc/ref/Reference/insert_range.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::insert_range - - -

[Home]insert_range

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pos
-    , typename Range
-    >
-struct insert_range
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-insert_range performs an insertion of a range of elements at an arbitrary position in the sequence. The algorithm returns a new sequence which contains all the elements of Sequence plus all the elements of Range starting at the distance< begin<Sequence>::type,Pos >::type position from the beginning. The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/insert_range.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceA sequence to handle the insert operation.
PosA model of Forward IteratorAn insert position in the Sequence.
RangeA model of SequenceThe range of elements to be inserted.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition  
typedef insert<Sequence,pos,range>::type s;A model of Extensible Sequencepos is a valid iterator in Sequence.s contains all the elements from range starting at the distance< begin<Sequence>::type,pos >::type position.size<s>::type::value == size<Sequence>::type::value + size<range>::type::value; the relative order of the elements in s is the same as in Sequence.
-

-

Complexity

-

-Linear time. -

-

Example

-

-

-typedef list_c<int,0,1,7,8,9> numbers;
-typedef find< numbers,integral_c<int,7> >::type pos;
-typedef insert_range< numbers,pos,range_c<int,2,7> >::type range;
-BOOST_STATIC_ASSERT(size<range>::type::value == 10);
-BOOST_STATIC_ASSERT((equal< range,range_c<int,0,10> >::type::value));
-
-

-

See also

-

-Extensible Sequence, insert, push_front, push_back, erase -


-Table of Contents
Last edited July 22, 2002 4:32 pm \ No newline at end of file diff --git a/doc/ref/Reference/is_sequence.html b/doc/ref/Reference/is_sequence.html deleted file mode 100644 index 88cb53b..0000000 --- a/doc/ref/Reference/is_sequence.html +++ /dev/null @@ -1,59 +0,0 @@ - -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/iter_fold.html b/doc/ref/Reference/iter_fold.html deleted file mode 100644 index f3ddd0c..0000000 --- a/doc/ref/Reference/iter_fold.html +++ /dev/null @@ -1,65 +0,0 @@ - -boost::mpl::iter_fold - - -

[Home]iter_fold

Synopsis

-

-

-template<
-      typename Sequence
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of the successive application of binary ForwardOp to the result of the previous ForwardOp invocation (State if it's the first call) and each iterator in the range [begin<Sequence>::type,end<Sequence>::type) in the linear order. -

-

Definition

-

-

-#include "boost/mpl/iter_fold.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of SequenceA sequence to iterate.
StateA typeThe initial state for the first ForwardOp application.
ForwardOpA model of [Lambda Function]The operation to be executed on forward traversal.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef iter_fold<Sequence,T,Op>::type t;A typeEquivalent to typedef lambda<Op>::type op; typedef begin<Sequence>::type i1; typedef apply<op,T,i1>::type t1; typedef i1::next i2; typedef apply<op,t1,i2>::type t2; ...; typedef apply<op,T,in>::type tn; typedef in::next last; typedef tn t, where n == size<Sequence>::type::value and last is identical to end<Sequence>::type; Equivalent to typedef T t; if the sequence is empty.
-

-

Complexity

-

-Linear. Exactly size<Sequence>::type::value applications of ForwardOp. -

-

Example

-

-

-typedef list_c<int,5,-1,0,7,2,0,-5,4> numbers;
-typedef iter_fold<
-      numbers
-    , begin<numbers>::type
-    , if_< less< deref<_1>, deref<_2> >,_2,_1 >
-    >::type max_element_iter;
-

-BOOST_STATIC_ASSERT(max_element_iter::type::value == 7); -

-

-

See also

-

-Algorithms, iter_fold_backward, fold, fold_backward, copy, copy_backward -


-Table of Contents
Last edited July 19, 2002 1:16 am \ No newline at end of file diff --git a/doc/ref/Reference/iter_fold_backward.html b/doc/ref/Reference/iter_fold_backward.html deleted file mode 100644 index d7ee2dd..0000000 --- a/doc/ref/Reference/iter_fold_backward.html +++ /dev/null @@ -1,71 +0,0 @@ - -boost::mpl::iter_fold_backward - - -

[Home]iter_fold_backward

Synopsis

-

-

-template<
-      typename Sequence
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp = _1
-    >
-struct iter_fold_backward
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of the successive application of binary BackwardOp to the result of the previous BackwardOp invocation (State if it's the first call) and each iterator in the range [begin<Sequence>::type,end<Sequence>::type) in the reverse order. If ForwardOp is provided, then it's applied on forward traversal to form the result which is passed to the first BackwardOp call. -

-

Definition

-

-

-#include "boost/mpl/iter_fold_backward.hpp"
-
-

-

Parameters

- - - - - - -
 Parameter  Requirement  Description  Default value  
SequenceA model of SequenceA sequence to iterate.
StateA typeThe initial state for the first BackwardOp/ForwardOp application.
BackwardOpA model of [Lambda Function]The operation to be executed on backward traversal.
ForwardOpA model of [Lambda Function]The operation to be executed on forward traversal.arg<1>
-

-

Expression semantics

-

- - - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef iter_fold_backward< Sequence,T,BackwardOp >::type t;A typeEquivalent to typedef lambda<BackwardOp>::type bk_op; typedef begin<Sequence>::type i1; typedef i1::next i2; ...; typedef in::next last; typedef apply<bk_op,T,in>::type tn; typedef apply<bk_op,tn,in-1>::type tn-1; ...; typedef apply<bk_op,t2,i1>::type t1; typedef t1 t, where n == size<Sequence>::type::value and last is identical to end<Sequence>::type; Equivalent to typedef T t; if the sequence is empty.
typedef iter_fold_backward< Sequence,T,BackwardOp,ForwardOp >::type t;A typeEquivalent to typedef iter_fold_backward<Sequence, iter_fold<Sequence,State,ForwardOp>::type, BackwardOp>::type t;.
-

-

Complexity

-

-Linear. Exactly size<Sequence>::type::value applications of BackwardOp and ForwardOp. -

-

Example

-

-Builds a list of iterators to the negative elements in a sequence. -

-

-typedef vector_c<int,5,-1,0,-7,-2,0,-5,4> numbers;
-typedef list_c<int,-1,-7,-2,-5> negatives;
-typedef iter_fold_backward<
-      numbers
-    , list<>
-    , if_< less< deref<_2>,int_<0> >, push_front<_1,_2>, _1 >
-    >::type iters;
-

-BOOST_STATIC_ASSERT(equal< negatives, transform_view< iters,deref<_1> > >::type::value); -

-

-

See also

-

-Algorithms, iter_fold, fold_backward, fold, copy, copy_backward -


-Table of Contents
Last edited March 12, 2003 6:31 am \ No newline at end of file diff --git a/doc/ref/Reference/iterator_category.html b/doc/ref/Reference/iterator_category.html deleted file mode 100644 index 1e90cfc..0000000 --- a/doc/ref/Reference/iterator_category.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::iterator_category - - -

[Home]iterator_category

Synopsis

-

-

-template<
-      typename Iterator
-    >
-struct iterator_category
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns one of the following iterator category tags: input_iterator_tag, forward_iterator_tag, bidirectional_iterator_tag, or random_access_iterator_tag. -

-

Definition

-

-

-#include "boost/mpl/iterator_category.hpp"
-#include "boost/mpl/iterator_tag.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
IteratorA model of Input Iterator
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition  
typedef iterator_category<Iterator>::type tag;An iterator category tagtag is input_iterator_tag if Iterator is a model of Input Iterator, forward_iterator_tag if Iterator is a model of Forward Iterator, bidirectional_iterator_tag if Iterator is a model of Bidirectional Iterator, or random_access_iterator_tag if Iterator is a model of Random Access Iterator.
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-template< typename Iterator >
-struct my_algorithm
-    : my_algorithm_impl<
-          iterator_category<Iterator>::type
-        , Iterator
-        >
-{
-};
-
-

-

See also

-

-Iterators, Sequence, begin, end, advance, distance -


-Table of Contents
Last edited July 17, 2002 6:20 am \ No newline at end of file diff --git a/doc/ref/Reference/joint_view.html b/doc/ref/Reference/joint_view.html deleted file mode 100644 index 48f66fd..0000000 --- a/doc/ref/Reference/joint_view.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::joint_view - - -

[Home]joint_view

Synopsis

-

-

-template<
-      typename Sequence1
-    , typename Sequence2
-    >
-struct joint_view
-{
-    // unspecified
-};
-
-

-

Description

-

-joint_view is a two-sequence view that allows one to operate on a sequence of concatenated elements of sequences Sequence1 and Sequence2 without actually creating one. -

-

Definition

-

-

-#include "boost/mpl/joint_view.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
Sequence1, Sequence2A model of SequenceSequences to concatenate.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef joint_view<Sequence1,Sequence2> s;A model of Sequences prodives iterators to all the elements in the ranges [begin<Sequence1>::type,end<Sequence1>::type), [begin<Sequence2>::type,end<Sequence2>::type).size<s>::type::value == size< Sequence1 >::type::value + size< Sequence2 >::type::value.
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef joint_view<
-      range_c<int,0,10>
-    , range_c<int,10,15>
-    > numbers;
-

-typedef range_c<int,0,15> answer; -BOOST_STATIC_ASSERT((equal<numbers,answer>::type::value)); -

-

-

See also

-

-Sequences, transform_view, filter_view, zip_view -


-Table of Contents
Last edited March 10, 2003 5:42 am \ No newline at end of file diff --git a/doc/ref/Reference/less.html b/doc/ref/Reference/less.html deleted file mode 100644 index 8ff0fcb..0000000 --- a/doc/ref/Reference/less.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::less - - -

[Home]less

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    >
-struct less
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns true_ if T1::value < T2::value and false_ otherwise [1]. -

-

Definition

-

-

-#include "boost/mpl/less.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2A model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef less<t1,t2>::type c;A model of bool Integral ConstantEquivalent to typedef bool_<(t1::value < t2::value)> c;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list_c<int,0,1,2,3,4,5,6,7,8,9> numbers;
-typedef remove_if< numbers, less<_1,int_<5> > >::type result;
-BOOST_STATIC_ASSERT(equal< result,range_c<int,5,10> >::type::value));
-
-

-

Notes

-

-[1] The less metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, less_equal, greater, greater_equal, equal, not_equal_to -


-Table of Contents
Last edited March 10, 2003 6:22 am \ No newline at end of file diff --git a/doc/ref/Reference/less_equal.html b/doc/ref/Reference/less_equal.html deleted file mode 100644 index 379f9a6..0000000 --- a/doc/ref/Reference/less_equal.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::less_equal - - -

[Home]less_equal

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    >
-struct less_equal
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns true_ if T1::value <= T2::value and false_ otherwise [1]. -

-

Definition

-

-

-#include "boost/mpl/less_equal.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2A model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef less_equal<t1,t2>::type c;A model of bool Integral ConstantEquivalent to typedef bool_<(t1::value <= t2::value)> c;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list_c<int,0,1,2,3,4,5,6,7,8,9> numbers;
-typedef remove_if< numbers, less_equal<_1,int_<4> > >::type result;
-BOOST_STATIC_ASSERT(equal< result,range_c<int,5,10> >::type::value));
-
-

-

Notes

-

-[1] The less_equal metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, less, greater, greater_equal, equal, not_equal_to -


-Table of Contents
Last edited March 10, 2003 6:28 am \ No newline at end of file diff --git a/doc/ref/Reference/list.html b/doc/ref/Reference/list.html deleted file mode 100644 index 4a522d2..0000000 --- a/doc/ref/Reference/list.html +++ /dev/null @@ -1,45 +0,0 @@ - -boost::mpl::list - - -

[Home]list

Synopsis

-

-

-template<
-      typename T1 = implementation-defined
-    , typename T2 = implementation-defined
-    , ...
-    , typename Tn = implementation-defined
-    >
-struct list
-{
-};
-
-

-

Description

-

-A list is a Forward Sequence of types. It's also an Extensible Sequence that supports constant time insertion and removal of elements at the beginning (through push_front), and linear time insertion and removal of elements at the end or in the middle (through insert/erase algorithms). -

-

Example

-

-

-typedef list<float,double,long double> floats;
-typedef push_front<floating_types,my_float>::type ext_floats;
-BOOST_STATIC_ASSERT((boost::is_same< front<ext_floats>::type, my_float >::value));
-
-

-

Definition

-

-

-#include "boost/mpl/list.hpp"
-#include "boost/mpl/list/list0.hpp"
-#include "boost/mpl/list/list10.hpp"
-...
-#include "boost/mpl/list/list50.hpp"
-
-

-

See also

-

-Forward Sequence, list_c, vector, vector_c, range_c -


-Table of Contents
Last edited July 17, 2002 8:05 am \ No newline at end of file diff --git a/doc/ref/Reference/list_c.html b/doc/ref/Reference/list_c.html deleted file mode 100644 index 3635e75..0000000 --- a/doc/ref/Reference/list_c.html +++ /dev/null @@ -1,58 +0,0 @@ - -boost::mpl::list_c - - -

[Home]list_c

Synopsis

-

-

-template<
-      typename T
-    , T C1 = implementation-defined
-    , T C2 = implementation-defined
-    , ...
-    , T CN = implementation-defined
-    >
-struct list_c
-{
-};
-
-

-

Description

-

-Similary to vector_c, list_c is a shorcut interface whose whole purpose is to make the creation of a list of Integral Constants less verbose: -

-

-typedef list_c<unsigned long,-1,0,1,1,-1,0,0,1,-1> data;
-
-

-If list_c didn't exist, instead of the above line you would have to write this: -

-

-typedef list<
-      integral_c<unsigned long,-1>
-    , integral_c<unsigned long,0>
-    , integral_c<unsigned long,1>
-    , integral_c<unsigned long,1>
-    , integral_c<unsigned long,-1>
-    , integral_c<unsigned long,0>
-    , integral_c<unsigned long,0>
-    , integral_c<unsigned long,1>
-    , integral_c<unsigned long,-1>
-    > data;
-
-

-

Definition

-

-

-#include "boost/mpl/list_c.hpp"
-#include "boost/mpl/list/list0_c.hpp"
-#include "boost/mpl/list/list10_c.hpp"
-...
-#include "boost/mpl/list/list50_c.hpp"
-
-

-

See also

-

-Random Access Sequence, list, vector, vector_c, range_c -


-Table of Contents
Last edited July 17, 2002 8:04 am \ No newline at end of file diff --git a/doc/ref/Reference/lower_bound.html b/doc/ref/Reference/lower_bound.html deleted file mode 100644 index 85f36e1..0000000 --- a/doc/ref/Reference/lower_bound.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::lower_bound - - -

[Home]lower_bound

Synopsis

-

-

-template<
-      typename Sequence
-    , typename T
-    , typename Pred = less<_,_>
-    >
-struct lower_bound
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the first position in the sorted Sequence where T could be inserted without violating the ordering. -

-

Definition

-

-

-#include "boost/mpl/lower_bound.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sorted sequence.
TA typeA type to search the position for.
PredA model of binary Predicate [Lambda Expression]A sort criteria.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef lower_bound< Sequence,T,Pred >::type i;A model of Forward Iteratori is the furthermost iterator in [begin<Sequence>::type, end<Sequence>::type) such that, for every iterator j in [begin<Sequence>::type, i), apply< lambda<Pred>::type, j::type, T >::type::value == true.
-

-

Complexity

-

-The number of comparisons is logarithmic: at most log(size<Sequence>::type::value) + 1. If Sequence is a Random Access Sequence then the number of steps through the range is also logarithmic; otherwise, the number of steps is proportional to size<Sequence>::type::value. -

-

Example

-

-

-typedef list_c<int,1,2,3,3,3,5,8> numbers;
-typedef lower_bound< numbers, int_<3> >::type iter;
-BOOST_STATIC_ASSERT((distance< begin<numbers>::type,iter >::type::value == 2));
-BOOST_STATIC_ASSERT(iter::type::value == 3);
-
-

-

See also

-

-Algorithms, sort, upper_bound -


-Table of Contents
Last edited March 10, 2003 5:43 am \ No newline at end of file diff --git a/doc/ref/Reference/max_element.html b/doc/ref/Reference/max_element.html deleted file mode 100644 index 3ff39c4..0000000 --- a/doc/ref/Reference/max_element.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::max_element - - -

[Home]max_element

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pred = less<_1,_2>
-    >
-struct max_element
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Finds the largest element in the Sequence. -

-

Definition

-

-

-#include "boost/mpl/max_element.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to be searched.
PredA model of binary Predicate [Lambda Expression]A comparison criteria.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef max_element< Sequence,Pred >::type i;A model of Forward Iteratori is the first iterator in [begin<Sequence>::type, end<Sequence>::type) such that for every iterator j in [begin<Sequence>::type, end<Sequence>::type), apply< lambda<Pred>::type, i::type, j::type >::type::value == false.
-

-

Complexity

-

-Linear. Zero comparisons if Sequence is empty, otherwise exactly size<Sequence>::value - 1 comparisons. -

-

Example

-

-

-typedef vector<int,char[50],long,double> types;
-typedef max_element<
-      transform_view< types,sizeof_<_1> >
-    >::type iter;
-

-BOOST_STATIC_ASSERT((distance< begin<types>::type,iter >::type::value == 1)); -BOOST_STATIC_ASSERT(sizeof(deref<iter>::type) == 50); -

-

-

See also

-

-Algorithms, min_element, upper_bound, lower_bound -


-Table of Contents
Last edited March 10, 2003 6:01 am \ No newline at end of file diff --git a/doc/ref/Reference/min_element.html b/doc/ref/Reference/min_element.html deleted file mode 100644 index 466fa70..0000000 --- a/doc/ref/Reference/min_element.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::min_element - - -

[Home]min_element

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pred = less<_1,_2>
-    >
-struct min_element
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Finds the smallest element in the Sequence. -

-

Definition

-

-

-#include "boost/mpl/min_element.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sequence to be searched.
PredA model of binary Predicate [Lambda Expression]A comparison criteria.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef min_element< Sequence,Pred >::type i;A model of Forward Iteratori is the first iterator in [begin<Sequence>::type, end<Sequence>::type) such that for every iterator j in [begin<Sequence>::type, end<Sequence>::type), apply< lambda<Pred>::type, j::type, i::type >::type::value == false.
-

-

Complexity

-

-Linear. Zero comparisons if Sequence is empty, otherwise exactly size<Sequence>::value - 1 comparisons. -

-

Example

-

-

-typedef vector<bool,char[50],long,double> types;
-typedef min_element<
-      transform_view< types,sizeof_<_1> >
-    >::type iter;
-

-BOOST_STATIC_ASSERT((distance< begin<types>::type,iter >::type::value == 0)); -BOOST_STATIC_ASSERT(sizeof(deref<iter>::type) == sizeof(bool)); -

-

-

See also

-

-Algorithms, max_element, upper_bound, lower_bound -


-Table of Contents
Last edited March 10, 2003 6:05 am \ No newline at end of file diff --git a/doc/ref/Reference/minus.html b/doc/ref/Reference/minus.html deleted file mode 100644 index 83752b0..0000000 --- a/doc/ref/Reference/minus.html +++ /dev/null @@ -1,64 +0,0 @@ - -boost::mpl::minus - - -

[Home]minus

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    , typename T3 = integral_c<int,0>
-    , ...
-    , typename Tn = integral_c<int,0>
-    >
-struct minus
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the difference of its arguments [1]. -

-

Definition

-

-

-#include "boost/mpl/minus.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2, .., TnA model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef minus<t1,t2,..,tn>::type diff;A model of Integral ConstantEquivalent to typedef integral_c<typeof(t1::value - t2::value .. - tn::value), t1::value - t2::value .. - tn::value > diff;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef minus< integral_c<short,-1>, integral_c<long,10> >::type diff;
-BOOST_STATIC_ASSERT(diff::value == -11));
-BOOST_MPL_ASSERT_IS_SAME(diff::value_type, long);
-
-

-

Notes

-

-[1] The minus metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, plus, divides, multiplies, modulus, negate -


-Table of Contents
Last edited March 10, 2003 6:31 am \ No newline at end of file diff --git a/doc/ref/Reference/modulus.html b/doc/ref/Reference/modulus.html deleted file mode 100644 index 0b7a646..0000000 --- a/doc/ref/Reference/modulus.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::modulus - - -

[Home]modulus

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    >
-struct modulus
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the modulus of its arguments [1]. -

-

Definition

-

-

-#include "boost/mpl/modulus.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2A model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef modulus<t1,t2>::type mod;A model of Integral Constantt2::value != 0 Equivalent to typedef integral_c<typeof(t1::value % t2::value), t1::value % t2::value> mod;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef modulus< integral_c<short,10>, integral_c<long,3> >::type mod;
-BOOST_STATIC_ASSERT(mod::value == 1));
-BOOST_MPL_ASSERT_IS_SAME(mod::value_type, long);
-
-

-

Notes

-

-[1] The modulus metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, divides, multiplies, plus, minus, negate -


-Table of Contents
Last edited March 10, 2003 6:32 am \ No newline at end of file diff --git a/doc/ref/Reference/multiplies.html b/doc/ref/Reference/multiplies.html deleted file mode 100644 index 111bd20..0000000 --- a/doc/ref/Reference/multiplies.html +++ /dev/null @@ -1,64 +0,0 @@ - -boost::mpl::multiplies - - -

[Home]multiplies

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    , typename T3 = integral_c<int,1>
-    , ...
-    , typename Tn = integral_c<int,1>
-    >
-struct multiplies
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the product of its arguments [1]. -

-

Definition

-

-

-#include "boost/mpl/multiplies.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2, .., TnA model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef multiplies<t1,t2,..,tn>::type product;A model of Integral ConstantEquivalent to typedef integral_c<typeof(t1::value * t2::value .. * tn::value), t1::value * t2::value .. * tn::value > product;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef multiplies< integral_c<short,-1>, integral_c<long,10> >::type product;
-BOOST_STATIC_ASSERT(product::value == -10));
-BOOST_MPL_ASSERT_IS_SAME(product::value_type, long);
-
-

-

Notes

-

-[1] The multiplies metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, divides, modulus, plus, minus, negate -


-Table of Contents
Last edited March 10, 2003 6:31 am \ No newline at end of file diff --git a/doc/ref/Reference/negate.html b/doc/ref/Reference/negate.html deleted file mode 100644 index 266b70e..0000000 --- a/doc/ref/Reference/negate.html +++ /dev/null @@ -1,60 +0,0 @@ - -boost::mpl::negate - - -

[Home]negate

Synopsis

-

-

-template<
-      typename T
-    >
-struct negate
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the negative (additive inverse) of its argument [1]. -

-

Definition

-

-

-#include "boost/mpl/negate.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
TA model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef negate<t>::type n;A model of Integral ConstantEquivalent to typedef integral_c<t::value_type, -t::value> n;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef negate< integral_c<short,-10> >::type n;
-BOOST_STATIC_ASSERT(n::value == 10));
-BOOST_MPL_ASSERT_IS_SAME(n::value_type, short);
-
-

-

Notes

-

-[1] The negate metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, minus, plus, multiplies, divides, modulus -


-Table of Contents
Last edited March 10, 2003 6:33 am \ No newline at end of file diff --git a/doc/ref/Reference/not.html b/doc/ref/Reference/not.html deleted file mode 100644 index 696e683..0000000 --- a/doc/ref/Reference/not.html +++ /dev/null @@ -1,51 +0,0 @@ - -boost::mpl::not_ - - -

[Home]not_

Synopsis

-

-

-template< 
-      typename F
-    >
-struct not_
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of logical not (!) operation on its argument. -

-

Definition

-

-

-#include "boost/mpl/not.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
FA model of nullary Metafunction
-

-

Expression semantics

-

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

-

Example

-

-

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

-

See also

-

-Metafunctions, and_, or_ -


-Table of Contents
Last edited September 6, 2003 3:09 am \ No newline at end of file diff --git a/doc/ref/Reference/not_equal_to.html b/doc/ref/Reference/not_equal_to.html deleted file mode 100644 index 1a1e224..0000000 --- a/doc/ref/Reference/not_equal_to.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::not_equal_to - - -

[Home]not_equal_to

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    >
-struct not_equal_to
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns true_ if T1::value != T2::value and false_ otherwise [1]. -

-

Definition

-

-

-#include "boost/mpl/not_equal_to.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2A model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef not_equal_to<t1,t2>::type c;A model of bool Integral ConstantEquivalent to typedef bool_<(t1::value != t2::value)> c;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef list_c<int,1,5,0,7,5,-1,2,4,5> numbers;
-typedef remove_if< numbers, not_equal_to<_1,int_<5> > >::type fives;
-BOOST_STATIC_ASSERT(equal_to< count_if< fives, equal_to<_1,int_<5> > >::type, size<fives>::type >::type::value));
-
-

-

Notes

-

-[1] The not_equal_to metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, equal_to, less, less_equal, greater, greater_equal -


-Table of Contents
Last edited March 10, 2003 6:20 am \ No newline at end of file diff --git a/doc/ref/Reference/or.html b/doc/ref/Reference/or.html deleted file mode 100644 index 916b722..0000000 --- a/doc/ref/Reference/or.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::or_ - - -

[Home]or_

Synopsis

-

-

-template< 
-      typename F1
-    , typename F2
-    , typename F3 = false_
-    ...
-    , typename Fn = false_
-    >
-struct or_
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the result of short-circuit logical or (||) operation on its arguments. -

-

Definition

-

-

-#include "boost/mpl/or.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
F1, F2, .., FnA model of nullary Metafunction
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
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

-

-

-// will generate compile-time error if invoked with T == any fundamental type
-template< typename T > struct fail
-{
-   typedef typename T::nonexistent type;
-};
-

-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 September 6, 2003 3:14 am \ No newline at end of file diff --git a/doc/ref/Reference/plus.html b/doc/ref/Reference/plus.html deleted file mode 100644 index 7b71d80..0000000 --- a/doc/ref/Reference/plus.html +++ /dev/null @@ -1,64 +0,0 @@ - -boost::mpl::plus - - -

[Home]plus

Synopsis

-

-

-template<
-      typename T1
-    , typename T2
-    , typename T3 = integral_c<int,0>
-    , ...
-    , typename Tn = integral_c<int,0>
-    >
-struct plus
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the sum of its arguments [1]. -

-

Definition

-

-

-#include "boost/mpl/plus.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
T1, T2, .., TnA model of Integral Constant
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef plus<t1,t2,..,tn>::type sum;A model of Integral ConstantEquivalent to typedef integral_c<typeof(t1::value + t2::value .. + tn::value), t1::value + t2::value .. + tn::value > sum;
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef plus< integral_c<short,-1>, integral_c<long,10> >::type sum;
-BOOST_STATIC_ASSERT(sum::value == 9));
-BOOST_MPL_ASSERT_IS_SAME(sum::value_type, long);
-
-

-

Notes

-

-[1] The plus metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.
-

-

See also

-

-Metafunctions, minus, multiplies, divides, modulus, negate -


-Table of Contents
Last edited March 10, 2003 6:30 am \ No newline at end of file diff --git a/doc/ref/Reference/pop_back.html b/doc/ref/Reference/pop_back.html deleted file mode 100644 index adbd4f4..0000000 --- a/doc/ref/Reference/pop_back.html +++ /dev/null @@ -1,71 +0,0 @@ - -boost::mpl::pop_back - - -

[Home]pop_back

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct pop_back
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-pop_back performs a removal at the end of the sequence. The algorithm returns a new sequence which contains all the elements in the range [begin<Sequence>::type, prior< end<Sequence>::type >::type). The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/pop_back.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceA sequence to handle the erase operation
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef pop_back<Sequence>::type s;A model of Extensible Sequenceempty<Sequence>::type::value == falseEquivalent to typedef erase< Sequence, prior< end<Sequence>::type >::type >::type s;size<s>::type::value == size<Sequence>::type::value - 1
-

-

Complexity

-

-Amortized constant time [1]. -

-

Example

-

-

-typedef list<long>::type types1;
-typedef list<long,int>::type types2;
-typedef list<long,int,char>::type types3;
-

-typedef pop_back<types1>::type result1; -typedef pop_back<types2>::type result2; -typedef pop_back<types3>::type result3; -

-BOOST_STATIC_ASSERT(size<result1>::type::value == 0); -BOOST_STATIC_ASSERT(size<result2>::type::value == 1); -BOOST_STATIC_ASSERT(size<result3>::type::value == 2); -

-BOOST_MPL_ASSERT_IS_SAME(back<result2>::type, long); -BOOST_MPL_ASSERT_IS_SAME(back<result3>::type, int); -

-

-

Notes

-

-[1] The algorithm is provided only if the sequence can meet the stated complexity requirements.
-

-

See also

-

-Extensible Sequence, erase, push_back, back, pop_front -


-Table of Contents
Last edited July 17, 2002 3:56 am \ No newline at end of file diff --git a/doc/ref/Reference/pop_front.html b/doc/ref/Reference/pop_front.html deleted file mode 100644 index 2930458..0000000 --- a/doc/ref/Reference/pop_front.html +++ /dev/null @@ -1,71 +0,0 @@ - -boost::mpl::pop_front - - -

[Home]pop_front

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct pop_front
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-pop_front performs a removal at the beginning of the sequence. The algorithm returns a new sequence which contains all the elements in the range [next< begin<Sequence>::type >::type, end<Sequence>::type). The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/pop_front.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceA sequence to handle the erase operation
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef pop_front<Sequence>::type s;A model of Extensible Sequenceempty<Sequence>::type::value == falseEquivalent to typedef erase< Sequence, begin<Sequence>::type >::type s;size<s>::type::value == size<Sequence>::type::value - 1
-

-

Complexity

-

-Amortized constant time [1]. -

-

Example

-

-

-typedef list<long>::type types1;
-typedef list<int,long>::type types2;
-typedef list<char,int,long>::type types3;
-

-typedef pop_front<types1>::type result1; -typedef pop_front<types2>::type result2; -typedef pop_front<types3>::type result3; -

-BOOST_STATIC_ASSERT(size<result1>::type::value == 0); -BOOST_STATIC_ASSERT(size<result2>::type::value == 1); -BOOST_STATIC_ASSERT(size<result3>::type::value == 2); -

-BOOST_MPL_ASSERT_IS_SAME(front<result2>::type, long); -BOOST_MPL_ASSERT_IS_SAME(front<result3>::type, int); -

-

-

Notes

-

-[1] The algorithm is provided only if the sequence can meet the stated complexity requirements.
-

-

See also

-

-Extensible Sequence, erase, push_front, front, pop_back -


-Table of Contents
Last edited July 17, 2002 3:54 am \ No newline at end of file diff --git a/doc/ref/Reference/push_back.html b/doc/ref/Reference/push_back.html deleted file mode 100644 index bd0ca75..0000000 --- a/doc/ref/Reference/push_back.html +++ /dev/null @@ -1,63 +0,0 @@ - -boost::mpl::push_back - - -

[Home]push_back

Synopsis

-

-

-template<
-      typename Sequence
-    , typename T
-    >
-struct push_back
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-push_back performs an insertion at the end of the sequence. The algorithm returns a new sequence which contains type T as its last element. The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/push_back.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceA sequence to handle the insert operation.
TA typeThe element to be inserted.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef push_back<Sequence,T>::type s;A model of Extensible SequenceEquivalent to typedef insert< Sequence,end<Sequence>::type,T >::type s;size<s>::type::value == size<Sequence>::type::value + 1; back<s>::type is identical to T
-

-

Complexity

-

-Amortized constant time [1]. -

-

Example

-

-

-typedef vector_c<bool,false,false,false,true,true,true,false,false> bools;
-typedef push_back<bools,false_>::type message;
-BOOST_STATIC_ASSERT(back<message>::type::value == false);
-BOOST_STATIC_ASSERT((count_if<message, equal_to<_1,false_> >::type::value == 6));
-
-

-

Notes

-

-[1] The algorithm can be viewed as a notational shorcut to more verbose insert< Sequence,end<Sequence>::type,T >::type, and is provided only if the sequence can meet the stated complexity requirements.
-

-

See also

-

-Extensible Sequence, insert, back, pop_back, push_front -


-Table of Contents
Last edited March 12, 2003 6:34 am \ No newline at end of file diff --git a/doc/ref/Reference/push_front.html b/doc/ref/Reference/push_front.html deleted file mode 100644 index 4681fcb..0000000 --- a/doc/ref/Reference/push_front.html +++ /dev/null @@ -1,64 +0,0 @@ - -boost::mpl::push_front - - -

[Home]push_front

Synopsis

-

-

-template<
-      typename Sequence
-    , typename T
-    >
-struct push_front
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-push_front performs an insertion at the beginning of the sequence. The algorithm returns a new sequence which contains type T as its first element. The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/push_front.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceA sequence to handle the insert operation.
TA typeThe element to be inserted.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef push_front<Sequence,T>::type s;A model of Extensible SequenceEquivalent to typedef insert< Sequence,begin<Sequence>::type,T >::type s;size<s>::type::value == size<Sequence>::type::value + 1; front<s>::type is identical to T
-

-

Complexity

-

-Amortized constant time [1]. -

-

Example

-

-

-typedef list_c<int,1,2,3,5,8,13,21> something;
-BOOST_STATIC_ASSERT(size<something>::type::value == 7);
-typedef push_front< something,integral_c<int,1> >::type fibonacci;
-BOOST_STATIC_ASSERT(size<fibonacci>::type::value == 8);
-BOOST_STATIC_ASSERT((equal< fibonacci,list_c<int,1,1,2,3,5,8,13,21>,equal_to<_,_> >::type::value));
-
-

-

Notes

-

-[1] The algorithm can be viewed as a notational shorcut to more verbose insert< Sequence,begin<Sequence>::type,T >::type, and is provided only if the sequence can meet the stated complexity requirements.
-

-

See also

-

-Extensible Sequence, insert, front, pop_front, push_back -


-Table of Contents
Last edited September 11, 2002 4:27 am \ No newline at end of file diff --git a/doc/ref/Reference/range_c.html b/doc/ref/Reference/range_c.html deleted file mode 100644 index ded9ce7..0000000 --- a/doc/ref/Reference/range_c.html +++ /dev/null @@ -1,71 +0,0 @@ - -boost::mpl::range_c - - -

[Home]range_c

Synopsis

-

-

-template<
-      typename T
-    , T Start
-    , T Finish
-    >
-struct range_c
-{
-    typedef integral_c<T,Start> start;
-    typedef integral_c<T,Finish> finish;
-};
-
-

-

Description

-

-range_c is a sorted Random Access Sequence of Integral Constants. It is not an Extensible Sequence, meaning that transformation algorithms, such as push_front or replace, are not applicable to it, at least directly - you need to copy the content of the range into a more suitable sequence, when needed [1]. -

-

Definition

-

-

-#include "boost/mpl/range_c.hpp"
-
-

-

Example

-

-

-typedef range_c<int,0,0> range0;
-typedef range_c<int,0,1> range1;
-typedef range_c<int,0,10> range10;
-

-BOOST_STATIC_ASSERT(size<range0>::type::value == 0); -BOOST_STATIC_ASSERT(size<range1>::type::value == 1); -BOOST_STATIC_ASSERT(size<range10>::type::value == 10); -

-BOOST_STATIC_ASSERT(empty<range0>::type::value); -BOOST_STATIC_ASSERT(!empty<range1>::type::value); -BOOST_STATIC_ASSERT(!empty<range10>::type::value); -

-BOOST_MPL_ASSERT_IS_SAME(begin<range0>::type, end<range0>::type); -BOOST_MPL_ASSERT_NOT_SAME(begin<range1>::type, end<range1>::type); -BOOST_MPL_ASSERT_NOT_SAME(begin<range10>::type, end<range10>::type); -

-BOOST_STATIC_ASSERT(front<range1>::type::value == 0); -BOOST_STATIC_ASSERT(back<range1>::type::value == 0); -BOOST_STATIC_ASSERT(front<range10>::type::value == 0); -BOOST_STATIC_ASSERT(back<range10>::type::value == 9); -

-

-

Notes

-

-[1] In fact, the most common application of range_c class is to simplify the creation of sorted list or vector: -

-

-typedef copy<
-      range_c<int,0,50>
-    , push_back<_,_>
-    , vector<>
-    >::type numbers;
-

-

-

See also

-

-Random Access Sequence, vector, vector_c, list, list_c -


-Table of Contents
Last edited July 17, 2002 8:31 am \ No newline at end of file diff --git a/doc/ref/Reference/rational_c.html b/doc/ref/Reference/rational_c.html deleted file mode 100644 index dc03c41..0000000 --- a/doc/ref/Reference/rational_c.html +++ /dev/null @@ -1,72 +0,0 @@ - -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/math/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/Reference/remove.html b/doc/ref/Reference/remove.html deleted file mode 100644 index 6585d5b..0000000 --- a/doc/ref/Reference/remove.html +++ /dev/null @@ -1,59 +0,0 @@ - -boost::mpl::remove - - -

[Home]remove

Synopsis

-

-

-template<
-      typename Sequence
-    , typename T
-    >
-struct remove
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns a new sequence which contains all the elements from [begin<Sequence>::type, end<Sequence>::type) range except those that are identical to T. The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/remove.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceThe original sequence.
TA typeA type to be removed.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef remove<Sequence,T>::type s;A model of Extensible SequenceEquivalent to typedef remove_if< Sequence,is_same<_,T> >::type t;.
-

-

Complexity

-

-Linear. Performs exactly size<Sequence>::type::value comparisons for equality. -

-

Example

-

-

-typedef list<int,float,char,float,float,double>::type types;
-typedef remove< types,float >::type result;
-typedef list<int,char,double>::type answer;
-BOOST_STATIC_ASSERT((equal< result,answer >::type::value));
-
-

-

See also

-

-Algorithms, remove_if, replace, replace_if, transform -


-Table of Contents
Last edited July 17, 2002 8:43 am \ No newline at end of file diff --git a/doc/ref/Reference/remove_if.html b/doc/ref/Reference/remove_if.html deleted file mode 100644 index de10a3e..0000000 --- a/doc/ref/Reference/remove_if.html +++ /dev/null @@ -1,59 +0,0 @@ - -boost::mpl::remove_if - - -

[Home]remove_if

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pred
-    >
-struct remove_if
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns a new sequence which contains all the elements from [begin<Sequence>::type, end<Sequence>::type) range except those that satisfy the predicate Pred. The result sequence preserves all the functional and performance characteristics of the original Sequence, except its size and identity. -

-

Definition

-

-

-#include "boost/mpl/remove_if.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceThe original sequence.
PredAn unary Predicate [Lambda Expression]A removal condition.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef remove_if<Sequence,Pred>::type s;A model of Extensible Sequence
-

-

Complexity

-

-Linear. Performs exactly size<Sequence>::type::value applications of Pred. -

-

Example

-

-

-typedef list_c<int,1,4,5,2,7,5,3,5>::type numbers;
-typedef remove_if< numbers, greater<_,4> >::type result;
-typedef list_c<int,1,4,2,3>::type answer;
-BOOST_STATIC_ASSERT((equal< answer,result,equal_to<_,_> >::type::value));
-
-

-

See also

-

-Algorithms, remove, replace, transform -


-Table of Contents
Last edited July 17, 2002 8:43 am \ No newline at end of file diff --git a/doc/ref/Reference/replace.html b/doc/ref/Reference/replace.html deleted file mode 100644 index c496cb3..0000000 --- a/doc/ref/Reference/replace.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::replace - - -

[Home]replace

Synopsis

-

-

-template<
-      typename Sequence
-    , typename OldType
-    , typename NewType
-    >
-struct replace
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Performs a replacement operation on the sequence. The algorithm returns a new sequence which contains all the elements from [begin<Sequence>::type, end<Sequence>::type) range where every type identical to OldType has been replaced with a NewType. The result sequence preserves all the functional and performance characteristics of the original Sequence, including its size, but not identity. -

-

Definition

-

-

-#include "boost/mpl/replace.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceThe original sequence.
OldTypeA typeA type to be replaced.
NewTypeA typeA type to replace with.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef replace<Sequence,OldType,NewType>::type s;A model of Extensible SequenceEquivalent to typedef replace_if< Sequence,NewType,is_same<_,OldType> >::type t;.
-

-

Complexity

-

-Linear. Performs exactly size<Sequence>::type::value comparisons for equality, and at most size<Sequence>::type::value insertions. -

-

Example

-

-

-typedef list<int,float,char,float,float,double>::type types;
-typedef replace< types,float,double >::type result;
-typedef list<int,double,char,double,double,double>::type answer;
-BOOST_STATIC_ASSERT((equal< result,answer >::type::value));
-
-

-

See also

-

-Algorithms, replace_if, transform -


-Table of Contents
Last edited July 17, 2002 5:38 am \ No newline at end of file diff --git a/doc/ref/Reference/replace_if.html b/doc/ref/Reference/replace_if.html deleted file mode 100644 index 8919586..0000000 --- a/doc/ref/Reference/replace_if.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::replace_if - - -

[Home]replace_if

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Pred
-    , typename NewType
-    >
-struct replace_if
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Performs a conditional replacement operation on the sequence. The algorithm returns a new sequence which contains all the elements from [begin<Sequence>::type, end<Sequence>::type) range where every type that satisfies the predicate Pred has been replaced with a NewType. The result sequence preserves all the functional and performance characteristics of the original Sequence, including its size, but not identity. -

-

Definition

-

-

-#include "boost/mpl/replace_if.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceThe original sequence.
PredAn unary Predicate [Lambda Expression]The replacement condition.
NewTypeA typeA type to replace with.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef replace_if<Sequence,Pred,NewType>::type s;A model of Extensible SequenceEquivalent to typedef lambda<Pred>::type pred; typedef transform< Sequence, if_< apply1<pred,_1>,NewType,_1> >::type t;.
-

-

Complexity

-

-Linear. Performs exactly size<Sequence>::type::value applications of Pred, and at most size<Sequence>::type::value insertions. -

-

Example

-

-

-typedef list_c<int,1,4,5,2,7,5,3,5>::type numbers;
-typedef replace_if< numbers, greater<_,4>, int_<0> >::type result;
-typedef list_c<int,1,4,0,2,0,0,3,0>::type answer;
-BOOST_STATIC_ASSERT((equal< answer,result >::type::value));
-
-

-

See also

-

-Algorithms, replace, transform -


-Table of Contents
Last edited March 12, 2003 6:32 am \ No newline at end of file diff --git a/doc/ref/Reference/reverse.html b/doc/ref/Reference/reverse.html deleted file mode 100644 index e0c7778..0000000 --- a/doc/ref/Reference/reverse.html +++ /dev/null @@ -1,58 +0,0 @@ - -boost::mpl::reverse - - -

[Home]reverse

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct reverse
-{
-    typedef implementation-defined type;
-};
-
-

-

Description

-

-Reverses a sequence. The result sequence preserves all the functional and performance characteristics of the original Sequence, including its size, but not identity. -

-

Definition

-

-

-#include "boost/mpl/reverse.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceThe original sequence.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef reverse<Sequence>::type s;A model of Extensible Sequencesize<s>::type::value == size<Sequence>::type::value.
-

-

Complexity

-

-Linear. -

-

Example

-

-

-typedef list_c<int,9,8,7,6,5,4,3,2,1,0>::type numbers;
-typedef reverse< numbers >::type result;
-

-typedef range_c<int,0,10> answer; -BOOST_STATIC_ASSERT((equal<result,answer>::type::value)); -

-

-

See also

-

-Algorithms, transform, remove, remove_if -


-Table of Contents
Last edited March 10, 2003 6:13 am \ No newline at end of file diff --git a/doc/ref/Reference/single_view.html b/doc/ref/Reference/single_view.html deleted file mode 100644 index f859110..0000000 --- a/doc/ref/Reference/single_view.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::single_view - - -

[Home]single_view

Synopsis

-

-

-template<
-      typename T
-    >
-struct single_view
-{
-    // unspecified
-};
-
-

-

Description

-

-Allows one to represent an arbitrary type T as a single-element sequence. -

-

Definition

-

-

-#include "boost/mpl/single_view.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
TA typeThe type to be wrapped in a sequence.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef single_view<T> s;A model of Sequences is a random-access, single-element sequence such as front<s>::type is identical to Tsize<s>::type::value == 1, boost::same_as<front<s>::type,T>::value == true.
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef single_view<int> view;
-typedef begin<view>::type first;
-typedef end<view>::type last;
-

-BOOST_MPL_ASSERT_IS_SAME(first::type,int); -BOOST_MPL_ASSERT_IS_SAME(first::next,last); -BOOST_MPL_ASSERT_IS_SAME(last::prior,first); -

-BOOST_STATIC_ASSERT(size<view>::type::value == 1); -

-

-

See also

-

-Sequences, transform_view, filter_view, joint_view, zip_view -


-Table of Contents
Last edited March 10, 2003 5:19 am \ No newline at end of file diff --git a/doc/ref/Reference/size.html b/doc/ref/Reference/size.html deleted file mode 100644 index f5201d3..0000000 --- a/doc/ref/Reference/size.html +++ /dev/null @@ -1,60 +0,0 @@ - -boost::mpl::size - - -

[Home]size

Synopsis

-

-

-template<
-      typename Sequence
-    >
-struct size
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-size returns the number of elements in the sequence, that is, the number of elements in the range [begin<Sequence>::type,end<Sequence>::type). -

-

Definition

-

-

-#include "boost/mpl/size.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequenceA model of Sequence
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef size<Sequence>::type s;A model of Integral ConstantEquivalent to typedef distance< begin<Sequence>::type,end<Sequence>::type >::type s;s::value >= 0
-

-

Complexity

-

-The complexity of the size algorithm directly depends on the implementation of the particular sequence it is applied to. In the worst case size has a linear complexity. As a general rule, if the Sequence is a Random Access Sequence, you can be certain that size<Sequence>::type is an amortized constant time operation. The opposite is not necessary true - for example, a model of Forward Sequence still can guarantee you an amortized constant time size complexity. Please refer the documentation page of the concrete sequence type for further information. -

-

Example

-

-

-typedef list0<> empty_list;
-typedef vector_c<int,0,1,2,3,4,5> numbers;
-typedef range_c<int,0,100> more_numbers;
-

-BOOST_STATIC_ASSERT(size<list>::type::value == 0); -BOOST_STATIC_ASSERT(size<numbers>::type::value == 5); -BOOST_STATIC_ASSERT(size<more_numbers>::type::value == 100); -

-

-

See also

-

-Sequence, empty, begin, end -


-Table of Contents
Last edited July 17, 2002 3:51 am \ No newline at end of file diff --git a/doc/ref/Reference/transform.html b/doc/ref/Reference/transform.html deleted file mode 100644 index c2dced5..0000000 --- a/doc/ref/Reference/transform.html +++ /dev/null @@ -1,59 +0,0 @@ - -boost::mpl::transform - - -

[Home]transform

Synopsis

-

-

-template<
-      typename Sequence
-    , typename Op
-    >
-struct transform
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Performs a transformation on the sequence. The algorithm returns a new sequence produced by applying the unary metafunction Op to every element in the [begin<Sequence>::type, end<Sequence>::type) range. The result sequence preserves all the functional and performance characteristics of the original Sequence, including its size, but not identity. -

-

Definition

-

-

-#include "boost/mpl/transform.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of Extensible SequenceThe original sequence.
OpAn unary [Lambda Expression]A transformation.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef transform<Sequence,Op>::type s;A model of Extensible Sequencesize<s>::type::value == size<Sequence>::type::value.
-

-

Complexity

-

-Linear. The operation Op is applied exactly size<Sequence>::type::value times. -

-

Example

-

-

-typedef list<char,short,int,long,float,double> types;
-typedef list<char*,short*,int*,long*,float*,double*> pointers;
-typedef transform< types,boost::add_pointer<_1> >::type result;
-BOOST_STATIC_ASSERT((equal<result,pointers>::value));
-
-

-

See also

-

-Algorithms, replace, replace_if, transform -


-Table of Contents
Last edited July 17, 2002 5:47 am \ No newline at end of file diff --git a/doc/ref/Reference/transform_view.html b/doc/ref/Reference/transform_view.html deleted file mode 100644 index 23827bd..0000000 --- a/doc/ref/Reference/transform_view.html +++ /dev/null @@ -1,62 +0,0 @@ - -boost::mpl::transform_view - - -

[Home]transform_view

Synopsis

-

-

-template<
-      typename Sequence
-    , typename F
-    >
-struct transform_view
-{
-    // unspecified
-};
-
-

-

Description

-

-transform_view is a sequence wrapper that allows one to operate on the transformed sequence without actually creating one. -

-

Definition

-

-

-#include "boost/mpl/transform_view.hpp"
-
-

-

Parameters

- - - - -
 Parameter  Requirement  Description  
SequenceA model of SequenceA sequence to wrap.
FA model of unary [Lambda Expression]A transformation metafunction.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef transform_view<Sequence,F> s;A model of Sequences is a sequence such that for each i in [begin<s>::type, end<s>::type) and for each j in [begin<Sequence>::type, end<Sequence>::type) i::type is identical to apply< lambda<F>::type, j::type >::type.size<Sequence>::type::value == size<s>::type::value.
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-Finds the largest type in a sequence. -

-

-typedef list<int,long,char,char[50],double> types;
-typedef max_element<
-      transform_view< types, size_of<_> >
-    >::type iter;
-BOOST_STATIC_ASSERT(iter::type::value == 50);
-
-

-

See also

-

-Sequences, filter_view, joint_view, zip_view, max_element -


-Table of Contents
Last edited March 10, 2003 4:43 am \ No newline at end of file diff --git a/doc/ref/Reference/upper_bound.html b/doc/ref/Reference/upper_bound.html deleted file mode 100644 index 6bf4310..0000000 --- a/doc/ref/Reference/upper_bound.html +++ /dev/null @@ -1,61 +0,0 @@ - -boost::mpl::upper_bound - - -

[Home]upper_bound

Synopsis

-

-

-template<
-      typename Sequence
-    , typename T
-    , typename Pred = less<_1,_2>
-    >
-struct upper_bound
-{
-    typedef unspecified type;
-};
-
-

-

Description

-

-Returns the last position in the sorted Sequence where T could be inserted without violating the ordering. -

-

Definition

-

-

-#include "boost/mpl/upper_bound.hpp"
-
-

-

Parameters

- - - - - -
 Parameter  Requirement  Description  
SequenceA model of Forward SequenceA sorted sequence.
TA typeA type to search the position for.
PredA model of binary Predicate [Lambda Expression]A sort criteria.
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef upper_bound< Sequence,T,Pred >::type i;A model of Forward Iteratori is the furthermost iterator in [begin<Sequence>::type, end<Sequence>::type) such that, for every iterator j in [begin<Sequence>::type, i), apply< lambda<Pred>::type, T, j::type >::type::value == false.
-

-

Complexity

-

-The number of comparisons is logarithmic: at most log(size<Sequence>::type::value) + 1. If Sequence is a Random Access Sequence then the number of steps through the range is also logarithmic; otherwise, the number of steps is proportional to size<Sequence>::type::value. -

-

Example

-

-

-typedef list_c<int,1,2,3,3,3,5,8> numbers;
-typedef upper_bound< numbers, int_<3> >::type iter;
-BOOST_STATIC_ASSERT((distance< begin<numbers>::type,iter >::type::value == 5));
-BOOST_STATIC_ASSERT(iter::type::value == 5);
-
-

-

See also

-

-Algorithms, sort, lower_bound -


-Table of Contents
Last edited March 10, 2003 5:44 am \ No newline at end of file diff --git a/doc/ref/Reference/vector.html b/doc/ref/Reference/vector.html deleted file mode 100644 index ec61ef6..0000000 --- a/doc/ref/Reference/vector.html +++ /dev/null @@ -1,77 +0,0 @@ - -boost::mpl::vector - - -

[Home]vector

Synopsis

-

-

-template<
-      typename T1 = implementation-defined
-    , typename T2 = implementation-defined
-    , ...
-    , typename Tn = implementation-defined
-    >
-struct vector
-{
-};
-
-

-

Description

-

-An vector is a Random Access Sequence of types. It's also an Extensible Sequence that supports constant time insertion and removal of elements at the end (through push_back), and linear time insertion and removal of elements at the beginning or in the middle (through insert/erase algorithms). On compilers that support the typeof extension, vector is the simplest and in many cases the most efficient sequence [1]. -

-

Example

-

-

-typedef vector<float,double,long double> floats;
-typedef push_back<floating_types,my_float>::type ext_floats;
-typedef at_c<3,ext_floats>::type my;
-BOOST_STATIC_ASSERT((boost::is_same<my,my_float>::value));
-
-

-

Definition

-

-

-#include "boost/mpl/vector.hpp"
-#include "boost/mpl/vector/vector0.hpp"
-#include "boost/mpl/vector/vector10.hpp"
-...
-#include "boost/mpl/vector/vector50.hpp"
-
-

-

Notes

-

-[1] The typeof operator allows one to use overload resolution to implement a constant-time random access to elements of the sequence with minimum amount of code (in contrast to the usual brute-force approach the library has to resort to when the typeof operator is not available): -

-

-struct null_node
-{
-    static aux::type_wrapper<void_> item(...);
-};
-

-template< long N, typename T, typename Base > -struct node - : Base -{ - using Base::item; - static aux::type_wrapper<T> item(integral_c<long,N>); -}; -

-template< typename V, long N > -struct at -{ - typedef __typeof__(V::item(integral_c<long,N>())) wrapped_type_; - typedef typename wrapped_type_::type type; -}; -

-typedef node<1,char,node<0,int,null_node> > v; -typedef at<v,0>::type t; // constant-time random access! -BOOST_STATIC_ASSERT((is_same<t,int>::value)); -

-
-

-

See also

-

-Random Access Sequence, vector_c, list, list_c, range_c -


-Table of Contents
Last edited July 22, 2002 4:28 pm \ No newline at end of file diff --git a/doc/ref/Reference/vector_c.html b/doc/ref/Reference/vector_c.html deleted file mode 100644 index 538db43..0000000 --- a/doc/ref/Reference/vector_c.html +++ /dev/null @@ -1,58 +0,0 @@ - -boost::mpl::vector_c - - -

[Home]vector_c

Synopsis

-

-

-template<
-      typename T
-    , T C1 = implementation-defined
-    , T C2 = implementation-defined
-    , ...
-    , T CN = implementation-defined
-    >
-struct vector_c
-{
-};
-
-

-

Description

-

-vector_c is a shorcut interface whose whole purpose is to make the creation of a vector of Integral Constants less verbose: -

-

-typedef vector_c<unsigned long,-1,0,1,1,-1,0,0,1,-1> data;
-
-

-If vector_c didn't exist, instead of the above line you would have to write this: -

-

-typedef vector<
-      integral_c<unsigned long,-1>
-    , integral_c<unsigned long,0>
-    , integral_c<unsigned long,1>
-    , integral_c<unsigned long,1>
-    , integral_c<unsigned long,-1>
-    , integral_c<unsigned long,0>
-    , integral_c<unsigned long,0>
-    , integral_c<unsigned long,1>
-    , integral_c<unsigned long,-1>
-    > data;
-
-

-

Definition

-

-

-#include "boost/mpl/vector_c.hpp"
-#include "boost/mpl/vector/vector0_c.hpp"
-#include "boost/mpl/vector/vector10_c.hpp"
-...
-#include "boost/mpl/vector/vector50_c.hpp"
-
-

-

See also

-

-Random Access Sequence, vector, list, list_c, range_c -


-Table of Contents
Last edited July 17, 2002 8:01 am \ No newline at end of file diff --git a/doc/ref/Reference/zip_view.html b/doc/ref/Reference/zip_view.html deleted file mode 100644 index bf15463..0000000 --- a/doc/ref/Reference/zip_view.html +++ /dev/null @@ -1,66 +0,0 @@ - -boost::mpl::zip_view - - -

[Home]zip_view

Synopsis

-

-

-template<
-      typename Sequences
-    >
-struct zip_view
-{
-    // unspecified
-};
-
-

-

Description

-

-zip_view provides a "zipped" view onto several sequences; that is, it allows to represent several sequences as a single sequence of elements each of those, in its turn, is a sequence of the corresponding Sequences elements. -

-

Definition

-

-

-#include "boost/mpl/zip_view.hpp"
-
-

-

Parameters

- - - -
 Parameter  Requirement  Description  
SequencesA Sequence of SequencesSequences to be "zipped".
-

-

Expression semantics

-

- - - -
 Expression  Expression type  Precondition  Semantics  Postcondition 
typedef zip_view<Sequences> s;A model of Sequences is a sequence such that for each i in [begin<s>::type, end<s>::type) and for each j in [begin<Sequences>::type, end<Sequences>::type) i::type is identical to transform<j::type, deref<_1> >::type .
-

-

Complexity

-

-Amortized constant time. -

-

Example

-

-

-typedef range_c<int,0,10> s1;
-typedef range_c<int,10,20> s2;
-

-typedef transform_view< - zip_view< list<s1,s2> > - , apply_seq< plus<_1,_2> > - > result; -

-BOOST_STATIC_ASSERT((equal< - result - , filter_view< range_c<int,10,30>, math::is_even<_1> > - , equal_to<_1,_2> - >::type::value)); -

-

-

See also

-

-Sequences, transform_view, filter_view, joint_view, equal -


-Table of Contents
Last edited March 10, 2003 5:04 am \ No newline at end of file diff --git a/doc/ref/Sequence.html b/doc/ref/Sequence.html index 7450d3b..c8d24d0 100644 --- a/doc/ref/Sequence.html +++ b/doc/ref/Sequence.html @@ -1,49 +1,10 @@ - -boost::mpl::Sequence - - -

[Home]Sequence

Description

-

-A Sequence (or, more precisely, an Input Sequence) is a compile-time entity to which you can apply begin/end operations in order to get iterators for accessing the range of its elements. In general, a sequence does not guarantee that its content doesn't change from one iteration to another, or between different compilation sessions [1]. See Forward Sequence for the definition of the concept that imposes such additional requirements. -

-

Valid expressions

-

- - - - -
 Expression  Expression type  
typename begin<s>::typeA model of Input Iterator
typename end<s>::typeA model of Input Iterator
-

-

Expression semantics

-

-See the description of begin/end operations. -

-

Invariants

-

-For any sequence s the following invariants always hold: -

-

-

Models

-

-

-

-

Notes

-

-[1] For example, a sequence might implement an interface to a compile-time random-number generator; for such sequence the begin/end invocation might return different iterators on every subsequent compilation of the code.
-

-

See also

-

-Sequences, Forward Sequence, Input Iterator, begin, end -


-Table of Contents
Last edited July 21, 2002 5:55 pm \ No newline at end of file + + + + + + +Automatic redirection failed, please go to +../index.html. + + diff --git a/doc/ref/Sequences.html b/doc/ref/Sequences.html index a7bcb59..c8d24d0 100644 --- a/doc/ref/Sequences.html +++ b/doc/ref/Sequences.html @@ -1,64 +1,10 @@ - -boost::mpl::Sequences - - -

[Home]Sequences

Concepts

- -

-

-

-

Classes

- -

-

-

-

Views

- -

-

Intrinsic Metafunctions

- -

-


-Table of Contents
Last edited July 1, 2003 3:47 pm \ No newline at end of file + + + + + + +Automatic redirection failed, please go to +../index.html. + + diff --git a/doc/ref/Table_of_Contents.html b/doc/ref/Table_of_Contents.html deleted file mode 100644 index 0f79c14..0000000 --- a/doc/ref/Table_of_Contents.html +++ /dev/null @@ -1,16 +0,0 @@ - -boost::mpl::Table of Contents - - -

[Home]Table of Contents

    -
  1. Sequences -
  2. Iterators -
  3. Algorithms -
  4. Metafunctions -
  5. Integral constant classes -
  6. Macros -
  7. Categorized index -
  8. Acknowledgements -
-


-Table of Contents
Last edited November 6, 2003 11:39 am \ No newline at end of file diff --git a/doc/ref/Trivial_Iterator.html b/doc/ref/Trivial_Iterator.html deleted file mode 100644 index f8d4a50..0000000 --- a/doc/ref/Trivial_Iterator.html +++ /dev/null @@ -1,46 +0,0 @@ - -boost::mpl::Trivial Iterator - - -

[Home]Trivial Iterator

Description

-

-A Trivial Iterator i is a type that represents a reference to an element of some Sequence, and allows to access the element through its nested type member [1]. A trivial iterator does not define any traversal operations. -

-

Definitions

-

-

-

-

Valid expressions

-

- - - -
 Expression  Expression type  
typename i::typeA type
-

-

Expression semantics

-

- - - -
 Expression  Complexity  Precondition  Semantics  Postcondition  
typename i::typeAmortized constant timei is dereferenceablei::type is identical to the type of the pointed element
-

-

Invariants

-

-For any trivial iterators i and j the following invariants always hold: -

-

-

-

Notes

-[1] Any trivial iterator is a model of [Nullary Metafunction Class] concept.
-

-

See also

-

-Sequence, Input Iterator -


-Table of Contents
Last edited July 15, 2002 10:46 am \ No newline at end of file diff --git a/doc/ref/mpl_logo.jpg b/doc/ref/mpl_logo.jpg deleted file mode 100644 index 10b49780c058a0e1eb4f16fd90e990363ac381d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17396 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

qP*>J8yR1_cX_qd!Ock){;OZ2Z>o`+x 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 diff --git a/doc/ref/mpl_wiki.css b/doc/ref/mpl_wiki.css deleted file mode 100644 index a6f6041..0000000 --- a/doc/ref/mpl_wiki.css +++ /dev/null @@ -1,41 +0,0 @@ -body -{ - background-color: white; - color: black; -} - -sup -{ - font-size: x-small; - font-weight: lighter; -} - -a:link, -a:visited -{ - color: #505050; -} - - pre a:link -,pre a:visited -,code a:link -,code a:visited -{ - color: #505050; - text-decoration: none; -} - - a.back-link:link -,a.back-link:visited -{ - color: black; - text-decoration: none; -} - -pre -{ - border-style: none none none solid; - border-width: 1px; - border-color: silver; - padding-left: 1em; -}