Boost logo

Boost :

From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2005-03-03 13:49:18


Andy Little wrote:
>
> aplogies for tardy reply)
>
>> By the way, Andy, you seem to have played around quite a bit -
>> if there is anything usable for examples I'ld be interested.
>
> I'd like to say I have... but I have only done a couple of quick tests.

Nevermind. I have written examples for every part of the interface, by
now (see the message just posted about the update in this thread).

> I dont have anything that exciting I'm afraid. I would guess that this
> library is most useful for FP...synthesising Functors? but that isnt my
> strongest suit
> :-(

As metaprogramming replaces external code generators there should be a
facility to work with function types, right ?

Currently there isn't - except function_traits, which is limited to only
plain functions (no pointers, references, member function pointers),
does not interoperate well with MPL and does only implement a subset of
the features of this proposal.

It is useful for all kinds of stuff such as call closures, smarter
callback registration, concept checking, automatically generated
interface descriptions...

Currently most Boost libraries that need to work with function types do
it their own way. This has the following disadvantages:

a) It is tedious to implement in the first place.
b) There is not support for variadic functions and non-default calling
    convetions for most of them. (*)
c) These implementations depends on preprocessor unrolled cascades
    of partially specializing a template, which, when applied redundantly
    is a waste of compile time resources, because it involves quite some
    code. Which can be significant, especially when point b) is adressed
    properly.

(*) This feature is planned but not implemented for the Function Types
library, yet.

The conclusion is a configurable global facility able to do this job
once and for all.

Nothing particulary interesting ;-) just a missing piece, that's all...

Best,

Tobias


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk