From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2019-07-04 12:08:31
On Thu, Jul 4, 2019 at 10:49 AM Andrey Semashev via Boost <
> On 7/4/19 1:37 AM, Frank Mori Hess wrote:
> > On Wed, Jul 3, 2019 at 3:40 PM Andrey Semashev via Boost
> > <boost_at_[hidden]> wrote:
> >> On 7/3/19 7:42 PM, Robert Ramey via Boost wrote:
> >>> Each one of these is a hodgepodge of design decisions arrived at after
> >>> very, very, very long speculative discussion. That are really all
> >>> special cases of the the concept of "typesafe variant".
> >> We've already had this discussion, and I'll reiterate that these types
> >> are not merely special cases - they serve their specific purposes and
> >> have interfaces and behavior tailored for their respective uses.
> >> You could just as well say that every C++ type is a special case of a
> >> typesafe variant - with only one alternative. This is as true as it is
> >> useless.
> > This is a straw man argument, you're refuting a gross exaggeration of
> > your opponent's position.
> Not at all. The types mentioned in Robert's message are very different,
> so merging them into one component makes as much sense to me as the
> speculation I made.
Just because two types are similar syntactically, doesn't mean that they
have similar semantics. For example, just because one needs variant's
functionality to implement outcome, doesn't mean that semantically outcome
should be e.g. an instance of some variant template.
The whole point of correct design is to remove flexibility that does not
pertain to what the interface is designed to do, leaving the user with only
the options that the interface designer has determined to be necessary and