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
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