$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Gavin Lambert (boost_at_[hidden])
Date: 2019-07-04 23:34:16
On 5/07/2019 00:08, Emil Dotchevski wrote:
>> 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.
>
> +1
>
> 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
> sufficient.
I agree, but that just suggests that the "mother of all variants" should
actually be a "variant_storage" type; you can then have "variant" and
"optional" etc expose only parts of its interface in their own
interface, either through standard composition or through private
inheritance.