forked from boostorg/function_types
Compare commits
3 Commits
svn-branch
...
svn-branch
Author | SHA1 | Date | |
---|---|---|---|
a3d2b71563 | |||
3b54daf163 | |||
853f7558c5 |
@ -16,11 +16,11 @@
|
||||
|
||||
[def __unspecified__ /unspecified/]
|
||||
|
||||
[def __mpl__ [@../../../mpl/index.html MPL]]
|
||||
[def __mpl_integral_constant__ __mpl__ - [@../../../mpl/doc/refmanual/integral-constant.html Integral Constant]]
|
||||
[def __mpl_fwd_seq__ __mpl__ - [@../../../mpl/doc/refmanual/forward-sequence.html Forward Sequence]]
|
||||
[def __mpl_fb_ext_ra_seq__ __mpl__ - [@../../../mpl/doc/refmanual/front-extensible-sequence.html Front] / [@../../../mpl/doc/refmanual/back-extensible-sequence.html Back ][@../../../mpl/doc/refmanual/extensible-sequence.html Extensible ][@../../../mpl/doc/refmanual/random-access-sequence.html Random Access Sequence]]
|
||||
[def __mpl_lambda_expression__ __mpl__ - [@../../../mpl/doc/refmanual/lambda-expression.html Lambda Expression]]
|
||||
[def __mpl__ [@/libs/mpl/index.html MPL]]
|
||||
[def __mpl_integral_constant__ __mpl__ - [@/libs/mpl/doc/refmanual/integral-constant.html Integral Constant]]
|
||||
[def __mpl_fwd_seq__ __mpl__ - [@/libs/mpl/doc/refmanual/forward-sequence.html Forward Sequence]]
|
||||
[def __mpl_fb_ext_ra_seq__ __mpl__ - [@/libs/mpl/doc/refmanual/front-extensible-sequence.html Front] / [@/libs/mpl/doc/refmanual/back-extensible-sequence.html Back ][@/libs/mpl/doc/refmanual/extensible-sequence.html Extensible ][@/libs/mpl/doc/refmanual/random-access-sequence.html Random Access Sequence]]
|
||||
[def __mpl_lambda_expression__ __mpl__ - [@/libs/mpl/doc/refmanual/lambda-expression.html Lambda Expression]]
|
||||
|
||||
[def __is_function [link boost_functiontypes.reference.classification.is_function is_function]]
|
||||
[def __is_function_pointer [link boost_functiontypes.reference.classification.is_function_pointer is_function_pointer]]
|
||||
@ -148,9 +148,9 @@ instead:
|
||||
}
|
||||
|
||||
The combination with a tuples library that provides an invoker component, such
|
||||
as [@../../../fusion/index.html Boost.Fusion], allows to build flexible callback
|
||||
as [@/libs/fusion/index.html Boost.Fusion], allows to build flexible callback
|
||||
facilities that are entirely free of repetitive code as shown by the
|
||||
[@../../../function_types/example/interpreter.hpp interpreter example].
|
||||
[@/libs/function_types/example/interpreter.hpp interpreter example].
|
||||
|
||||
When taking the address of an overloaded function or function template, the
|
||||
type of the function must be known from the context the expression is used
|
||||
@ -192,15 +192,15 @@ This technique can be occasionally more flexible than template argument
|
||||
deduction from a function call because the exact types from the sequence
|
||||
are used to specialize the template (including possibly cv-qualified
|
||||
reference types and the result type). It is applied twice in the
|
||||
[@../../../function_types/example/interface.hpp interface example].
|
||||
[@/libs/function_types/example/interface.hpp interface example].
|
||||
|
||||
Another interersting property of callable, builtin types is that they can be
|
||||
valid types for non-type template parameters. This way, a function can be
|
||||
pinpointed at compile time, allowing the compiler to eliminate the call by
|
||||
inlining.
|
||||
The [@../../../function_types/example/fast_mem_fn.hpp fast_mem_fn example]
|
||||
The [@/libs/function_types/example/fast_mem_fn.hpp fast_mem_fn example]
|
||||
exploits this characteristic and implements a potentially inlining version of
|
||||
[@../../../bind/mem_fn.html boost::mem_fn]
|
||||
[@/libs/bind/mem_fn.html boost::mem_fn]
|
||||
limited to member functions that are known at compile time.
|
||||
|
||||
[endsect]
|
||||
@ -862,9 +862,9 @@ the auto-detection mechanism in [^boost/function_types/config/compiler.hpp].]
|
||||
|
||||
[section:BOOST_FT_CC_NAMES BOOST_FT_CC_NAMES]
|
||||
|
||||
Expands to a [@../../../preprocessor/doc/data/sequences.html sequence] of
|
||||
ternary [@../../../preprocessor/doc/data/tuples.html tuples] (these data
|
||||
types are defined in the [@../../../preprocessor/doc/index.html
|
||||
Expands to a [@/libs/preprocessor/doc/data/sequences.html sequence] of
|
||||
ternary [@/libs/preprocessor/doc/data/tuples.html tuples] (these data
|
||||
types are defined in the [@/libs/preprocessor/doc/index.html
|
||||
documentation of the Boost Preprocessor library]).
|
||||
Each sequence element describes one calling convention specifier.
|
||||
The first element in each tuple is the macro suffix for
|
||||
@ -872,8 +872,8 @@ The first element in each tuple is the macro suffix for
|
||||
the second element is the name of the tag that describes the calling
|
||||
convention and the third is the name of the specifier.
|
||||
The specifier is allowed to be an empty string, so the third tuple element
|
||||
is either [@../../../preprocessor/doc/ref/empty.html [^BOOST_PP_EMPTY]] or
|
||||
[@../../../preprocessor/doc/ref/identity.html [^BOOST_PP_IDENTITY]][^(['name])].
|
||||
is either [@/libs/preprocessor/doc/ref/empty.html [^BOOST_PP_EMPTY]] or
|
||||
[@/libs/preprocessor/doc/ref/identity.html [^BOOST_PP_IDENTITY]][^(['name])].
|
||||
|
||||
Define this macro to extend the set of possible names for custom calling
|
||||
conventions. The macro expands to nothing by default.
|
||||
@ -1013,10 +1013,10 @@ input can be spotted easily.
|
||||
MPL provides algorithms on Sequences, so transformations (such as turning
|
||||
by-value parameter types into const references for optimized forwarding
|
||||
or computing a signature to specialize
|
||||
[@../../../function/index.html [^boost::function]] after applying
|
||||
[@../../../bind/index.html [^boost::bind]]) can be expressed more
|
||||
[@/libs/function/index.html [^boost::function]] after applying
|
||||
[@/libs/bind/index.html [^boost::bind]]) can be expressed more
|
||||
easily. The MPL Sequence concept is compatible with several other Boost
|
||||
libraries (most importantly [@../../../fusion/index.html Fusion]),
|
||||
libraries (most importantly [@/libs/fusion/index.html Fusion]),
|
||||
so another reason is interoperability.
|
||||
|
||||
|
||||
@ -1075,7 +1075,7 @@ It was found preferable that the following condition holds:
|
||||
|
||||
A cv-qualified pointer is still a pointer. It usually doesn't matter and
|
||||
even if it does, it's a job for
|
||||
[@../../../type_traits/index.html Boost.TypeTraits].
|
||||
[@/libs/type_traits/index.html Boost.TypeTraits].
|
||||
|
||||
|
||||
[endsect]
|
||||
|
Reference in New Issue
Block a user