220 41202 <CA+AqvO1Tdn-2NyEUBVMVJnuQw+fsxym0gKVv1F5Q3sq3h5rLGw@mail.gmail.com> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Lawrence Emke <lawrence.emke@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Re: Proposal: Extensions of Scoped Enumerations
Date: Sun, 2 Dec 2018 14:12:32 -0600
Lines: 240
Approved: news@gmane.org
Message-ID: <CA+AqvO1Tdn-2NyEUBVMVJnuQw+fsxym0gKVv1F5Q3sq3h5rLGw@mail.gmail.com>
References: <506ba0a8-2d6b-4a4d-8fe8-b5e94d232365@isocpp.org>
 <82c331a0-fb81-4b67-8a7e-c5a6b8929e00@isocpp.org> <43b3f4ec-fd19-4144-bf24-067ce587e071@isocpp.org>
 <d54cc535-542f-4a7b-80f9-b4dab85e0ca4@isocpp.org> <9e3bba78-04c2-42d5-b522-2712932c1659@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="0000000000003f51ac057c0fa94d"
X-Trace: blaine.gmane.org 1543781465 5319 195.159.176.226 (2 Dec 2018 20:11:05 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Sun, 2 Dec 2018 20:11:05 +0000 (UTC)
Cc: philipgins@gmail.com
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBCGL5F7MUMNRBVXZSDQAKGQEVNGFXGA@isocpp.org Sun Dec 02 21:11:01 2018
Return-path: <std-proposals+bncBCGL5F7MUMNRBVXZSDQAKGQEVNGFXGA@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-oi1-f198.google.com ([209.85.167.198])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBCGL5F7MUMNRBVXZSDQAKGQEVNGFXGA@isocpp.org>)
	id 1gTY4y-0001Du-Q6
	for gclcip-std-proposals@m.gmane.org; Sun, 02 Dec 2018 21:11:01 +0100
Original-Received: by mail-oi1-f198.google.com with SMTP id b18sf7010720oii.1
        for <gclcip-std-proposals@m.gmane.org>; Sun, 02 Dec 2018 12:13:11 -0800 (PST)
ARC-Seal: i=2; a=rsa-sha256; t=1543781591; cv=pass;
        d=google.com; s=arc-20160816;
        b=BXHmC/AKch+ARZxHWMas+3rshJepWOW1BOO2DtOnUXvmoGpmnOdp9G+rihHPw8ubEo
         1ap0HEbPwCtr8FQbxA8CqmE4Vlai/Awge0SbOgamGZEc0LMvRAgx94P/kmRioFumgnfL
         IsvHZ2P6ACLBH/LeVWsO7eLzEzxCCO3QZhOiA28Au+dP2xf6Pw9g9QkTPHHJx6EgcZgS
         7+HyubSC9HyVfyi3V2sjADgZSRx5KtYeBHeHMkIaQStWpd2J5aY9UtC9kH9kGQEUTXQ2
         PIpAGo3p+gRDbWwx6mmb79/t1NN55IeDTp5GVEYi5V5gZ7QoL/BzAS6ZKFSmV/eguK8k
         HEhw==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
         :list-id:mailing-list:precedence:reply-to:cc:to:subject:message-id
         :date:from:in-reply-to:references:mime-version:dkim-signature;
        bh=G5WaL0QZSOCVHcWW9i9mqEuMOHKtYIKDDX8Xfqx7Lt8=;
        b=K9g/TVolrTZqNomBVC9qAe/0dwqY1qt8pNPTW3BEO97n4eKNlmE+e6yC+cCTayYsXx
         yeSN8N53QZCqNyW0ji6IuNh0dyj+N5XUHNwrqgxmE1AFzeEO5Y7614HBedK2poJlRNwb
         bVHeC9H+n8u+UZDIXVJCO31bACqfTYR3A7w3O3RSF5PBgmyzCzQOswcum3fn8svcysu3
         KH/l2XeWFkqVnJyQn32YUe0Pw6WJTMfU/3JlrXdjs8EwiKAVZ+ODBIuUH0N7ODWyDszI
         yLaC363pwq16+/fwB2lvve5vji0+tl6Rts47+mPV33rmtRkOHchhkT5YuM8XxRujqFTP
         JGIQ==
ARC-Authentication-Results: i=2; mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20161025 header.b=H14CtFAD;
       spf=pass (google.com: domain of lawrence.emke@gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=lawrence.emke@gmail.com;
       dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=mime-version:references:in-reply-to:from:date:message-id:subject:to
         :cc:x-original-sender:x-original-authentication-results:reply-to
         :precedence:mailing-list:list-id:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=G5WaL0QZSOCVHcWW9i9mqEuMOHKtYIKDDX8Xfqx7Lt8=;
        b=pHfa2vl0nkk5jmgaJv5ZtQ7Kn59Mh0vPU2fP5ejFePuA20dfg+XtWmRuC180aiz45N
         G0NjcwznjPENzSAPsRXKeHZCG7Mu3M968rTqdoaizZPNJ30UcFeDW4HIJ+6JxiOsvG1Q
         wP1xnV615+L6ktSDbgWGiu9fsBSJzPmCkDkFAsgiY6diSWgo+Kt9j6b2/ryjp7FqTdhl
         TXeoI78Fhbip93rVpi1eialzVKYdThOogLNirxdFDiM9qx0HVyJi9AnSa/XENJVOaJAx
         +XTKzCNUs/xaDFeaDftUD8jcXu/gkpWipw4syQdvPf2BbWodhfe6fm/wQWOj75tJ3nr6
         v1Gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=G5WaL0QZSOCVHcWW9i9mqEuMOHKtYIKDDX8Xfqx7Lt8=;
        b=prkjdU5EyH8ftSSLYngC5cIFUCbEK/t+ZvvMu4EyeANgWwUUao9LBCSfsMaojEeEJR
         7tTrs27zkekglI6vItZJ+FIxrht4qy8y3NqCbi/IQ2iqrn3FsIOsqWEi3yfjhAyBUGkR
         LWkFBgIbb0FP8uOdkgU3/JqZJL5VkWZ3FRfneDKt3dwVfwysxdgvgC9PU1zO1ba1reAB
         fsxxbXQCCd7F2Z7y0qyEG5keb8JFGimEz8vvZGWGUAMDSCY15EKXJfBgUwQOE866py1m
         o/3qwTyqY+6wH+eNgf+81QigmuawNBUe+4/dRbjs8OMjiXcbUAj04K9GeZ+UjwpnhFgj
         iO+Q==
X-Gm-Message-State: AA+aEWZEi54ER9xc4cdkXnCOmy91+JE3ycZIwpyMi1ZJMhf99yhJ76Io
	Krwf6ztncTMvcw3ZkHxvyWV3gg==
X-Google-Smtp-Source: AFSGD/VOKny0+7VRevJDRNM49gsbfXcWFFldDQLxdRFdauOQodXGt3hKc+0b+5z9yvo/bkyz1T9RZQ==
X-Received: by 2002:a05:6830:1411:: with SMTP id v17mr10658709otp.67.1543781591157;
        Sun, 02 Dec 2018 12:13:11 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 2002:aca:6046:: with SMTP id u67ls7210327oib.7.gmail; Sun, 02 Dec
 2018 12:13:10 -0800 (PST)
X-Received: by 2002:aca:41c5:: with SMTP id o188mr7973420oia.61.1543781590221;
        Sun, 02 Dec 2018 12:13:10 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1543781590; cv=none;
        d=google.com; s=arc-20160816;
        b=N5+KDfRNDmfP7SXSwALspHdBsSy8qaWeRP1RIPwZEQYp2MAcbglK1an3lmCp9Bsww7
         JU03DvBkjcwFEMW7tb6uke+IsbjUvUMW55pQZPk+kD8E6mYPbLyjvfZeuKybVCl32Rlb
         0CHd5UDAjuL9wyGiuStlvLstpYw1h8UPnpUEIab4rDUeMrdT4nmAy6G5TLgxod7W5dUv
         BGpXCD/gmtGI0jhAiZGyillcI2r7XD+0qY0yc7FW+bj7nGVfEoMB/6zBSZwBOx4EurD6
         Im2S5jhbvncgUBbGuMCigaw/dJNIg03FLySF4fLRqxMnrJrUYG+GO2AGIaQjQ+pfUZCM
         xABA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=yo8CFbdI7E6zsd30MhxiKLwbmqbxPG3kiqH7NEcf/Lg=;
        b=aH5H+Q6/ZN3EItHlF9h+ya6QW3wJlwDo23U2nGLmEeSjJJjQjKylLfAEVPXR8VrSd9
         6d8W4z6b9DRFVWZD3R0SjGbV0c1qB/TatPj4l4jRSmNWAPOvkydT1Gw5mCNkakni0j3c
         x8AMMQWX/bcPIXJE0QLS4Up88zQ1iNqeOnsK3NsRZNV5Y839/AiYZ85xJ3FU/6YnsMg2
         e2ZGqylWjCZ3glIlnBNaqMdYOAC54v1hwl+IXyb9OkWUCUuwWa0+pz4meFUG6dC/TQFy
         BJJXbZg5ret1sWlQ7Luea6ySjPjIBG61lyBThIREGighTN7KvaGOqeKdaeJnT5NGaJt/
         DWwQ==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@gmail.com header.s=20161025 header.b=H14CtFAD;
       spf=pass (google.com: domain of lawrence.emke@gmail.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=lawrence.emke@gmail.com;
       dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
Original-Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41])
        by mx.google.com with SMTPS id a5sor5874708oif.39.2018.12.02.12.13.10
        for <std-proposals@isocpp.org>
        (Google Transport Security);
        Sun, 02 Dec 2018 12:13:10 -0800 (PST)
Received-SPF: pass (google.com: domain of lawrence.emke@gmail.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41;
X-Received: by 2002:aca:4ed8:: with SMTP id c207mr8663627oib.276.1543781589404;
 Sun, 02 Dec 2018 12:13:09 -0800 (PST)
In-Reply-To: <9e3bba78-04c2-42d5-b522-2712932c1659@isocpp.org>
X-Original-Sender: lawrence.emke@gmail.com
X-Original-Authentication-Results: mx.google.com;       dkim=pass
 header.i=@gmail.com header.s=20161025 header.b=H14CtFAD;       spf=pass
 (google.com: domain of lawrence.emke@gmail.com designates 209.85.220.41 as
 permitted sender) smtp.mailfrom=lawrence.emke@gmail.com;       dmarc=pass
 (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Spam-Checked-In-Group: std-proposals@isocpp.org
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:41202
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/41202>

--0000000000003f51ac057c0fa94d
Content-Type: text/plain; charset="UTF-8"

I do not follow every item put forth in this conversation completely.

My two cents (worth nothing) is:

What is the underlying purpose of an enum?

My answer: there seems to be two different purposes!
The enum object came out of the need to provide a simple way for code users
to
communicate which options are being used when a function is called.
This arose because before enums you had to remember and use the correct code
to specify the option value. Codes changed, as functions were expanded and
modified.

There were two different uses:
1) the simple code, where the user specified a value (usually an integer)
that represented
   the option being selected.
2) an exact value like 2048. or 4096, etc.. The specified value was
actually used.
   This was more difficult because not all values were valid. So an easy
way to
   provide this value was by using constants or a list of constants.

By using numbers simple code and the constants added additional attributes
to the
object, namely the numerical ordering and the arithmetic operations.
Programmers took advantage of these additional attributes (being numbers).

Along comes object oriented programming, with homeomorphism, multiple
inheritance. and
operator overloading.

In an effort to handle the problems that enums proposed in this new
environment, again
the two use cases were lumped into one implementation, where the
referencing of
the enum value required to state the enum type (or class) value with each
reference.

Going back to the original case situation, there are really two different
objects being
involved.   The simple code value does not in itself require the additional
attributes
that are associated with numbers.  The name/value case of constants may or
may
not require numeric attributes.

The two uses can and should be separated, for good design requirements.  It
has been
my experience that using one thing for two purposes usually leads to
conflicts, as
is the case with enums.

The simple code case does not require a numeric value. It only requires a
unique identifier.
The only attributes needed in the code environment is equal and unequal,
valid or not valid.

The name/value case may or may not need a numerical ordering, and numeric
operations.

In the case of the simple code, any value for the code can be set, as long
as it is not equal
to any other enum value (i.e. unique within all possible enum code values
within the environment.)
The exact value for each enum value can be determined at execution time.
Many enum lists
can use the same enum value without concern of its use by another function.
It has only
one meaning.

The case of name/value enums is different. In this situation the actual
value is very important.
can be used for calculation purposes. Its value is dependent on the local
scope in which it
is used. In this situation the naming of the scope is required.

As far as return types.  The scoped enum definition should return the name
of the scope
as the type value.  For code enums the ENUM type should be returned.

By using the different type values the two cases are identified as
different. If an enum
value is used without the scope type, it should be assumed to be of type
"ENUM", then
if a function requires a specific type of enum, it can detect that the
wrong type of enum
is being used. The reverse is also true.

These are just some worthless thoughts about the ENUM subject. They cost
nothing
and have that value







On Sat, Dec 1, 2018 at 7:44 AM <philipgins@gmail.com> wrote:

> Hi Bengt,
>
> That's an interesting detail to fill in, thanks. I will add something
> about that to the pdf as well. I think it should absolutely be the integer
> and not the base enum, just as you suggest.
>
> Best,
> Philip
>
> --
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9e3bba78-04c2-42d5-b522-2712932c1659%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9e3bba78-04c2-42d5-b522-2712932c1659%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CA%2BAqvO1Tdn-2NyEUBVMVJnuQw%2Bfsxym0gKVv1F5Q3sq3h5rLGw%40mail.gmail.com.

--0000000000003f51ac057c0fa94d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I do not follow every item put forth in this conversation =
completely.<div><br></div><div>My two cents (worth nothing) is:</div><div><=
br></div><div>What is the underlying purpose of an enum?</div><div><br></di=
v><div>My answer: there seems to be two different purposes!</div><div>The e=
num object came out of the need to provide a simple way for code users to</=
div><div>communicate which options are being used when a function is called=
..=C2=A0</div><div>This arose because before enums you had to remember and u=
se the correct code</div><div>to specify the option value. Codes changed, a=
s functions were expanded and modified.</div><div><br></div><div>There were=
 two different uses:</div><div>1) the simple code, where the user specified=
 a value (usually an integer) that represented</div><div>=C2=A0 =C2=A0the o=
ption being selected.=C2=A0=C2=A0</div><div>2) an exact value like 2048. or=
 4096, etc.. The specified value was actually used.</div><div>=C2=A0 =C2=A0=
This was more difficult because not all values were valid. So an easy way t=
o=C2=A0</div><div>=C2=A0 =C2=A0provide this value was by using constants or=
 a list of constants.=C2=A0=C2=A0</div><div><br></div><div>By using numbers=
 simple code and the constants added additional attributes to the=C2=A0</di=
v><div>object, namely the numerical ordering and the arithmetic operations.=
=C2=A0</div><div>Programmers took advantage of these additional attributes =
(being numbers).</div><div><br></div><div>Along comes object oriented progr=
amming, with homeomorphism, multiple inheritance. and</div><div>operator ov=
erloading.=C2=A0=C2=A0</div><div><br></div><div>In an effort to handle the =
problems that enums proposed in this new environment, again=C2=A0</div><div=
>the two use cases were lumped into one implementation, where the referenci=
ng of</div><div>the enum value required to state the enum type (or class) v=
alue with each reference.=C2=A0</div><div><br></div><div>Going back to the =
original case situation, there are really two different objects being</div>=
<div>involved.=C2=A0 =C2=A0The simple code value does not in itself require=
 the additional attributes</div><div>that are associated with numbers.=C2=
=A0 The name/value case of constants may or may=C2=A0</div><div>not require=
 numeric attributes.=C2=A0</div><div><br></div><div>The two uses can and sh=
ould be separated, for good design requirements.=C2=A0 It has been</div><di=
v>my experience that using one thing for two purposes usually leads to conf=
licts, as</div><div>is the case with enums.=C2=A0</div><div><br></div><div>=
The simple code case does not require a numeric value. It only requires a u=
nique identifier.</div><div>The only attributes needed in the code environm=
ent is equal and unequal, valid or not valid.</div><div><br></div><div>The =
name/value case may or may not need a numerical ordering, and numeric opera=
tions.</div><div><br></div><div>In the case of the simple code, any value f=
or the code can be set, as long as it is not equal</div><div>to any other e=
num value (i.e. unique within all possible enum code values within the envi=
ronment.)</div><div>The exact value for each enum value can be determined a=
t execution time. Many enum lists</div><div>can use the same enum value wit=
hout concern of its use by another function. It has only</div><div>one mean=
ing.=C2=A0=C2=A0</div><div><br></div><div>The case of name/value enums is d=
ifferent. In this situation the actual value is very important.</div><div>c=
an be used for calculation purposes. Its value is dependent on the local sc=
ope in which it</div><div>is used. In this situation the naming of the scop=
e is required.=C2=A0</div><div><br></div><div>As far as return types.=C2=A0=
 The scoped enum definition should return the name of the scope</div><div>a=
s the type value.=C2=A0 For code enums the ENUM type should be returned.=C2=
=A0</div><div><br></div><div>By using the different type values the two cas=
es are identified as different. If an enum</div><div>value is used without =
the scope type, it should be assumed to be of type &quot;ENUM&quot;, then</=
div><div>if a function requires a specific type of enum, it can detect that=
 the wrong type of enum</div><div>is being used. The reverse is also true.=
=C2=A0</div><div><br></div><div>These are just some worthless thoughts abou=
t the ENUM subject. They cost nothing</div><div>and have that value</div><d=
iv><br></div><div>=C2=A0</div><div><br></div><div><br></div><div>=C2=A0<br>=
</div><div><div><br></div></div></div><br><div class=3D"gmail_quote"><div d=
ir=3D"ltr">On Sat, Dec 1, 2018 at 7:44 AM &lt;<a href=3D"mailto:philipgins@=
gmail.com" target=3D"_blank">philipgins@gmail.com</a>&gt; wrote:<br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><div dir=3D"ltr">Hi Bengt,<div><br></div><div=
>That&#39;s an interesting detail to fill in, thanks. I will add something =
about that to the pdf as well. I think it should absolutely be the integer =
and not the base enum, just as you suggest.</div><div><br></div><div>Best,<=
br>Philip</div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/9e3bba78-04c2-42d5-b522-2712932c1659%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9e3bba78-04c2-=
42d5-b522-2712932c1659%40isocpp.org</a>.<br>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CA%2BAqvO1Tdn-2NyEUBVMVJnuQw%2Bfsxym0=
gKVv1F5Q3sq3h5rLGw%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CA%2BAqvO1Tdn=
-2NyEUBVMVJnuQw%2Bfsxym0gKVv1F5Q3sq3h5rLGw%40mail.gmail.com</a>.<br />

--0000000000003f51ac057c0fa94d--

.
