Boost logo

Boost :

From: Tom Brinkman (reportbase_at_[hidden])
Date: 2006-11-12 12:30:31

The Function Types library min-review is extended five more days to
to November 17, 2006.

Please take another look at this library and express
your views as to whether you think that the library is now
ready for inclusion into boost.

Help improve this library even further by giving the
author some additional feedback.

This library was reviewed last year, the link to the review manager
comments at that time are here:

Tobias Schwinger
tschwinger AT neoscientists DOT org




Boost.FunctionTypes provides functionality to classify,
decompose and synthesize function, function pointer,
function reference and pointer to member function types.

In other words, the library can be used to:

- test whether a type is a specific callable builtin type,
- extract all component properties from
    callable builtin types, and
- create callable builtin types from specified properties.

The library is designed to work well with other Boost
libraries and uses well-accepted concepts introduced
by Boost and TR1.

Templates that encapsulate boolean or numeric properties
define a static member constant called value.


is_function_pointer< bool(*)(int) >::value // == true
function_arity< bool(*)(int) >::value // == 1

Templates that encapsulate properties that are single
types contain a type member called type.

function_type< mpl::vector<bool,int> >::type // is bool(int)
result_type< bool(&)(int) >::type // is int

Templates that encapsulate properties that are type
lists model an MPL-compatible type sequence.

parameter_types< bool(int) > // models an MPL sequence

Whats New
(from the last "official" version)

- The interface,
- the documentation,
- the test-suite,
- carefully picked and inline-documented
    source code examples,
- code generator for preprocessed files is
    entirely written on top of Wave,
- preprocessed files and the configuration
    (up to a certain extent) are compiler-agnostic,
- preprocessed files do not have to be
    regenerated for custom configurations,
    unless for optimization (and changing the
    library code, of course), and
- library is default calling convention-agnostic, OIW the
    default calling convention can be
    changed and detected without
    changing the library's configuration
    (unless for MSVC<8 due to the
    lack of a 'thiscall' keyword)

Review Manager,
Tom Brinkman

Boost list run by bdawes at, gregod at, cpdaniel at, john at