Boost logo

Boost :

Subject: Re: [boost] [Boost-users] [Fit] upcoming formal review for Boost.Fit
From: Paul Fultz II (pfultz2_at_[hidden])
Date: 2016-02-29 00:02:06


On Sunday, February 28, 2016 at 6:12:22 PM UTC-6, Matt Calabrese wrote:
>
> On Sat, Feb 27, 2016 at 8:16 AM, Vicente J. Botet Escriba <
> vicent..._at_[hidden] <javascript:>> wrote:
>
> > Dear Boost community,
> >
> > The formal review of Paul Fultz II's Fit library starts on Wednesday,
> 2nd March and ends on 13th March.
> >
> >
> I'm looking through the documentation right now and it looks great, though
> I have not used the library yet. Some suggestions -- I think the docs
> really need a more formal motivation/tutorial section at the very front.
> It
> starts with *what* the library is in very general terms, and jumps quickly
> into what the library can do, but I think a bit of a narrative describing
> a
> motivating example would help sell it to those who are not already more
> familiar with the *why*. This is done a little bit, scattered throughout
> the docs, but I find that the best docs usually tell something of a story.
> This is just a request.

Do you have an idea of what kind of problem would make a good motivating
example for this library? The quick start guide moves quickly so people can
quickly see what the library can do. However, a more in-depth turtorial
could
be useful as well. I just need to think of a larger problem that stays focus
on the functional aspect.
 

> I suggest not using the name FunctionObject for something that is only
> callable with a const object. This is a little more specific that what
> most
> people refer to as a function object in C++ and may cause confusion.
>

Good point. This would also apply to Callable as well.
 

>
> I'm fairly certain that the reinterpret casting involved with
> BOOST_FIT_STATIC_LAMBDA is UB.
>

Not really, since the objects are empty, there is no data access. I have a
static assert to guard against this restriction. Also, on gcc and clang with
BOOST_FIT_STATIC_LAMBDA_FUNCTION, the reinterpret cast happens at compile-
time.

Now there could be an insane implementation where this doesn't work(perhaps
the lambdas are not empty for some strange reason), which the library would
have to apply a different technique to make it work. However, this is quite
unlikely considering that C++ will probably get constexpr lambdas and inline
variables in the future.

Paul


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