Boost logo

Boost :

From: Robert Ramey (ramey_at_[hidden])
Date: 2019-07-03 16:42:34


On 7/3/19 5:36 AM, Emil Dotchevski via Boost wrote:
> On Tue, Jul 2, 2019 at 7:19 PM Nevin Liber via Boost <boost_at_[hidden]>

>> And if "we cannot correctly anticipate the needs and desires of our
>> potential users", policies also "cannot correctly
>> anticipate the needs and desires of our potential users" either. Policies
>> do not solve this problem.
>
> +1
>
> Worse, policy-based designs are the result of the expert in the problem
> domain (the library author), unable to make up his mind about the library
> design,

The are the result of the fact that, depending on the usage of the type,
different design feature should be selected.

pushing that responsibility to people (users)

Right

who are less knowledgeable

Not necessarily - and highly suspect.

> (the library users).

The policy based design is an implement technique to specify the set of
legitimate variations of a design which the user might need without the
need to write multiple types. Right now we have:

boost::variant
std::variant
boost::variant2
boost::outcome
?::expected
boost::optional
std::optional
... ?

Each one of these is a hodgepodge of design decisions arrived at after
very, very, very long speculative discussion. That are really all just
special cases of the the concept of "typesafe variant". Navigating and
documenting the differences is a very time consuming endeavor for
anyone. It is not an efficient way to do things.

>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>


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