Boost logo

Boost :

Subject: Re: [boost] [variant] Maintainer
From: Larry Evans (cppljevans_at_[hidden])
Date: 2015-07-14 13:18:16

On 07/14/2015 11:16 AM, Nevin Liber wrote:
> On 14 July 2015 at 08:01, Larry Evans <cppljevans_at_[hidden]> wrote:
>> What about variant<>, or is that disallowed?
>> If it is disallowed, then tuple<> should, I guess, also be disallowed.
> Why?
Because of the duality between category products and coproducts:

in particular, the following:


This is called duality principle. For every construction in category
theory, there's an opposite construction with arrows reversed.

Also, the following:

specifically mention empty products and empty coproducts:

  a terminal object can be thought of as an empty product...
  Dually, an initial object is a colimit of the empty diagram ∅ → C
  and can be thought of as an empty coproduct or categorical sum.

I know it that, at first glance, an empty product or empty coproduct
doesn't make much sense, but, then again, adding 0 to a numerical
sum doesn't make any difference; hence, why is there any need
for 0? Apparently the category people think there's sufficient
reason to define an empty coproduct and empty product; hence, I'd
guess there's some good reason.

Category experts (e.g. Louis Dionne), can you supply some better


Boost list run by bdawes at, gregod at, cpdaniel at, john at