On Thu, Jul 4, 2019 at 10:49 AM Andrey Semashev via Boost < boost@lists.boost.org> wrote:
On 7/4/19 1:37 AM, Frank Mori Hess wrote:
On Wed, Jul 3, 2019 at 3:40 PM Andrey Semashev via Boost
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
just
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.
+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.