220 33572 <4c872807-7d50-4b58-bbb5-595a8bac1246@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Re: Catch block for multiple exceptions
Date: Thu, 3 Aug 2017 16:17:43 -0700 (PDT)
Lines: 331
Approved: news@gmane.org
Message-ID: <4c872807-7d50-4b58-bbb5-595a8bac1246@isocpp.org>
References: <effe744d-f832-42c7-9b2a-ef31551067d0@isocpp.org>
 <deaedeb0-a699-49e9-826a-c41e674902c0@isocpp.org> <CAEfefmzCWDwP2ha7UfvvPrW_56TT4DEgvwRyxWm=6gS_GZc7pA@mail.gmail.com>
 <4126837.jZlGhgVnua@tjmaciei-mobl1> <d14636de-fb57-47b3-8666-7976ccdb6fe8@isocpp.org>
 <d58143f8-c128-3745-b835-1e04a5760d0d@gmail.com> <CA+fGSbMB3=H4hetWu3GFPzUskLP_sh0Q=Q4oxsUsZ6ci-jrpxg@mail.gmail.com>
 <CAFk2RUbdEQMQB4qLCDeaHeF0Q4ntbZG7-Cuf0X2G8d5+Dpf1Pw@mail.gmail.com> <54580edb-4a76-4241-b5c8-19ccbc1a562e@isocpp.org>
 <CAFk2RUZncz91iozp5d=WVhPCHwLa67dhmpwBRMEU5xioJvPuRA@mail.gmail.com>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_295_1335713273.1501802263600"
X-Trace: blaine.gmane.org 1501802269 1221 195.159.176.226 (3 Aug 2017 23:17:49 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Thu, 3 Aug 2017 23:17:49 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDLZJYWNDQIJRXUOZQCRUBCZZVKQC@isocpp.org Fri Aug 04 01:17:44 2017
Return-path: <std-proposals+bncBDLZJYWNDQIJRXUOZQCRUBCZZVKQC@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-io0-f198.google.com ([209.85.223.198])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBDLZJYWNDQIJRXUOZQCRUBCZZVKQC@isocpp.org>)
	id 1ddPN6-0008E2-B8
	for gclcip-std-proposals@m.gmane.org; Fri, 04 Aug 2017 01:17:40 +0200
Original-Received: by mail-io0-f198.google.com with SMTP id h70sf870945ioi.14
        for <gclcip-std-proposals@m.gmane.org>; Thu, 03 Aug 2017 16:17:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to:message-id:in-reply-to:references:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=gLMqKh8LdYaLLFKiOden1vZ5BC8DcasgoUsauaz7rXg=;
        b=FO7RXDUHI4nzeDQArvu1j+kQrNg43GIY/thoxe6qu4xJzB2g8G2WplMIB6F36Rl8qG
         A6aCYnVTWjxZhpGBM0AeG0jT51Nj+qJdntGvo5d9qTgwlCiA9+k/4jNhyhMhTuAioDSB
         UCJ3YGxBBfPkW0McS2rh/l3hjP+5khe6DRCvAiB/eCvULYY6zpOcGN8hSYxK51WH7fvC
         UA/zF9Yo10MSXThrnwkCghHNuPT0+I0CQZXJgMDsTKR1ZQubyKRNixRL3eu64OJ4CSHT
         9DyA9DVEIABWGhwttCXAVFwY7V3eDUsPSJENV6hCT2sxKTKKhL3wrm6wegFT1d9M+y1m
         vCSQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to:message-id:in-reply-to:references:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=gLMqKh8LdYaLLFKiOden1vZ5BC8DcasgoUsauaz7rXg=;
        b=YrPT32GpvvUnTZtnII2gOQCE2Unls8HfiJgJ+Q1YigUumVgErXHsB5k2E3nC2tN5+g
         lxTNxwfcVTk+aIYsJAVteRFoua6mVA7NafxV2mHk+whk3WDRDdY/q469G2dddjHm3VPz
         JdG1ieHA+BsK6wA05SccG+fO7Mb//+nflnk7WZ5ccvFXS1AcBDPFljfouqtLTXj5sUEQ
         ej/6Bx95LfbNi7rI1lWHQMLu2E5HXxXBPnwldObyQS00xspJ2dHDs/tJksbNmAhKEhhW
         KSv++OgIgLpdIIznZWXxa5BUXCFBO0cSuT19uCqODo1qx93rCZzxauAPWLqFstr8+jVm
         8mmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:date:from:to:message-id:in-reply-to:references
         :subject:mime-version:x-original-sender:reply-to:precedence
         :mailing-list:list-id:x-spam-checked-in-group:list-post:list-help
         :list-archive:list-subscribe:list-unsubscribe;
        bh=gLMqKh8LdYaLLFKiOden1vZ5BC8DcasgoUsauaz7rXg=;
        b=jYLDdVZKn114ZFbnC/kwV+zkw65kyJf8RWNWtjwqmdXHNSVN4/7M5TK1a9IC2ha4px
         JgMrVv8ZJzeKEFkMZWgN2+u3W8Br1V2ntDdBj0FShJvkS4Gy4gToHBYSwo0gHdfED9Fo
         89qQGY3DcSU5B/mM5ByPbkPViM5dL4RoHS2dG843b7HM6H9++5+WH1uCj3YxsQPukROc
         2F+UKXobaZ0oZC/IXVGATiCbEr897AsXMVbowGzWPlG8jbN8GDIXsTNKTqfY4z5VJ2CO
         B2uIeL+g7IYgL35fqPs7cICW0ix0FXFrQ0YTfNSvihXto+VThlJeGwCRcxnPZ4aQPz3f
         Xjsw==
X-Gm-Message-State: AIVw1121g84nZl6bzwSBCLocbYo+J4WzNsIzjZ390dVAbS0hURBKW/4f
	R04KpWuuYV9D9ivg
X-Received: by 10.36.34.149 with SMTP id o143mr151875ito.29.1501802265801;
        Thu, 03 Aug 2017 16:17:45 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.36.138.134 with SMTP id v128ls570569itd.15.gmail; Thu, 03 Aug
 2017 16:17:44 -0700 (PDT)
X-Received: by 10.31.191.67 with SMTP id p64mr2487vkf.4.1501802264282;
        Thu, 03 Aug 2017 16:17:44 -0700 (PDT)
In-Reply-To: <CAFk2RUZncz91iozp5d=WVhPCHwLa67dhmpwBRMEU5xioJvPuRA@mail.gmail.com>
X-Original-Sender: arthur.j.odwyer@gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <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:33572
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/33572>

------=_Part_295_1335713273.1501802263600
Content-Type: multipart/alternative; 
	boundary="----=_Part_296_2103261817.1501802263600"

------=_Part_296_2103261817.1501802263600
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wednesday, August 2, 2017 at 4:38:01 PM UTC-7, Ville Voutilainen wrote:
>
>
> Note that both of our solutions suffer from the problem that the code=20
> in the catch-clause=20
> cannot break, continue, goto or return like plain code could. An=20
> if-else chain of any_casts=20
> from exception_ptr would be able to do that.=20
>

Do you think LEWG would be amenable to a proposal to make std::any_cast an=
=20
all-purpose "type-un-erasing" mechanism in C++2a?
Right now we have a different type-un-erasure mechanism for each=20
type-erased type, and more proliferating with each revision of the Standard=
:

std::any a =3D xx;assert( std::any_cast<Type>(a) =3D=3D 42 );
std::function<long()> f =3D xx;assert( *f.target<Type>() =3D=3D xx );
std::shared_ptr<int> p(new int, xx);assert( *std::get_deleter<Type>(p) =3D=
=3D xx );

(from=20
https://stackoverflow.com/questions/44788017/retrieve-typeid-of-shared-ptr-=
deleter
)
(and from this thread, we can add std::exception_ptr to the list of=20
type-erased types)

I'm not sure "any_cast" would necessarily be the right spelling, but it is=
=20
pretty awkward IMHO that various library designers keep reinventing it over=
=20
and over with different spellings.

=E2=80=93Arthur

--=20
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 e=
mail 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/4c872807-7d50-4b58-bbb5-595a8bac1246%40isocpp.or=
g.

------=_Part_296_2103261817.1501802263600
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wednesday, August 2, 2017 at 4:38:01 PM UTC-7, Ville Vo=
utilainen wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin=
-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
<br>Note that both of our solutions suffer from the problem that the code
<br>in the catch-clause
<br>cannot break, continue, goto or return like plain code could. An
<br>if-else chain of any_casts
<br>from exception_ptr would be able to do that.
<br></blockquote><div><br></div><div>Do you think LEWG would be amenable to=
 a proposal to make std::any_cast an all-purpose &quot;type-un-erasing&quot=
; mechanism in C++2a?</div><div>Right now we have a different type-un-erasu=
re mechanism for each type-erased type, and more proliferating with each re=
vision of the Standard:</div><div><br></div><div><pre class=3D"default pret=
typrint prettyprinted" style=3D"margin-bottom: 1em; padding: 5px; font-fami=
ly: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono=
&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39=
;Courier New&#39;, monospace, sans-serif; line-height: inherit; vertical-al=
ign: baseline; width: auto; max-height: 600px; overflow: auto; background-c=
olor: rgb(239, 240, 241); color: rgb(57, 51, 24); word-wrap: normal;"><code=
 style=3D"font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &=
#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera S=
ans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-style: in=
herit; font-variant-caps: inherit; line-height: inherit; vertical-align: ba=
seline; white-space: inherit;"><span class=3D"pln" style=3D"font-family: in=
herit; font-size: inherit; font-style: inherit; font-variant-caps: inherit;=
 line-height: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">s=
td</span><span class=3D"pun" style=3D"font-family: inherit; font-size: inhe=
rit; font-style: inherit; font-variant-caps: inherit; line-height: inherit;=
 vertical-align: baseline; color: rgb(48, 51, 54);">::</span><span class=3D=
"pln" style=3D"font-family: inherit; font-size: inherit; font-style: inheri=
t; font-variant-caps: inherit; line-height: inherit; vertical-align: baseli=
ne; color: rgb(48, 51, 54);">any a </span><span class=3D"pun" style=3D"font=
-family: inherit; font-size: inherit; font-style: inherit; font-variant-cap=
s: inherit; line-height: inherit; vertical-align: baseline; color: rgb(48, =
51, 54);">=3D</span><span class=3D"pln" style=3D"font-family: inherit; font=
-size: inherit; font-style: inherit; font-variant-caps: inherit; line-heigh=
t: inherit; vertical-align: baseline; color: rgb(48, 51, 54);"> xx</span><s=
pan class=3D"pun" style=3D"font-family: inherit; font-size: inherit; font-s=
tyle: inherit; font-variant-caps: inherit; line-height: inherit; vertical-a=
lign: baseline; color: rgb(48, 51, 54);">;</span><span class=3D"pln" style=
=3D"font-family: inherit; font-size: inherit; font-style: inherit; font-var=
iant-caps: inherit; line-height: inherit; vertical-align: baseline; color: =
rgb(48, 51, 54);">
</span><span class=3D"kwd" style=3D"font-family: inherit; font-size: inheri=
t; font-style: inherit; font-variant-caps: inherit; line-height: inherit; v=
ertical-align: baseline; color: rgb(16, 16, 148);">assert</span><span class=
=3D"pun" style=3D"font-family: inherit; font-size: inherit; font-style: inh=
erit; font-variant-caps: inherit; line-height: inherit; vertical-align: bas=
eline; color: rgb(48, 51, 54);">(</span><span class=3D"pln" style=3D"font-f=
amily: inherit; font-size: inherit; font-style: inherit; font-variant-caps:=
 inherit; line-height: inherit; vertical-align: baseline; color: rgb(48, 51=
, 54);"> std</span><span class=3D"pun" style=3D"font-family: inherit; font-=
size: inherit; font-style: inherit; font-variant-caps: inherit; line-height=
: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">::</span><spa=
n class=3D"pln" style=3D"font-family: inherit; font-size: inherit; font-sty=
le: inherit; font-variant-caps: inherit; line-height: inherit; vertical-ali=
gn: baseline; color: rgb(48, 51, 54);">any_cast</span><span class=3D"pun" s=
tyle=3D"font-family: inherit; font-size: inherit; font-style: inherit; font=
-variant-caps: inherit; line-height: inherit; vertical-align: baseline; col=
or: rgb(48, 51, 54);">&lt;</span><span class=3D"typ" style=3D"font-family: =
inherit; font-size: inherit; font-style: inherit; font-variant-caps: inheri=
t; line-height: inherit; vertical-align: baseline; color: rgb(43, 145, 175)=
;">Type</span><span class=3D"pun" style=3D"font-family: inherit; font-size:=
 inherit; font-style: inherit; font-variant-caps: inherit; line-height: inh=
erit; vertical-align: baseline; color: rgb(48, 51, 54);">&gt;(</span><span =
class=3D"pln" style=3D"font-family: inherit; font-size: inherit; font-style=
: inherit; font-variant-caps: inherit; line-height: inherit; vertical-align=
: baseline; color: rgb(48, 51, 54);">a</span><span class=3D"pun" style=3D"f=
ont-family: inherit; font-size: inherit; font-style: inherit; font-variant-=
caps: inherit; line-height: inherit; vertical-align: baseline; color: rgb(4=
8, 51, 54);">)</span><span class=3D"pln" style=3D"font-family: inherit; fon=
t-size: inherit; font-style: inherit; font-variant-caps: inherit; line-heig=
ht: inherit; vertical-align: baseline; color: rgb(48, 51, 54);"> </span><sp=
an class=3D"pun" style=3D"font-family: inherit; font-size: inherit; font-st=
yle: inherit; font-variant-caps: inherit; line-height: inherit; vertical-al=
ign: baseline; color: rgb(48, 51, 54);">=3D=3D</span><span class=3D"pln" st=
yle=3D"font-family: inherit; font-size: inherit; font-style: inherit; font-=
variant-caps: inherit; line-height: inherit; vertical-align: baseline; colo=
r: rgb(48, 51, 54);"> </span><span class=3D"lit" style=3D"font-family: inhe=
rit; font-size: inherit; font-style: inherit; font-variant-caps: inherit; l=
ine-height: inherit; vertical-align: baseline; color: rgb(125, 39, 39);">42=
</span><span class=3D"pln" style=3D"font-family: inherit; font-size: inheri=
t; font-style: inherit; font-variant-caps: inherit; line-height: inherit; v=
ertical-align: baseline; color: rgb(48, 51, 54);"> </span><span class=3D"pu=
n" style=3D"font-family: inherit; font-size: inherit; font-style: inherit; =
font-variant-caps: inherit; line-height: inherit; vertical-align: baseline;=
 color: rgb(48, 51, 54);">);</span><span class=3D"pln" style=3D"font-family=
: inherit; font-size: inherit; font-style: inherit; font-variant-caps: inhe=
rit; line-height: inherit; vertical-align: baseline; color: rgb(48, 51, 54)=
;">

</span><span class=3D"pln" style=3D"font-family: inherit; font-size: inheri=
t; font-style: inherit; font-variant-caps: inherit; line-height: inherit; v=
ertical-align: baseline; color: rgb(48, 51, 54);">std</span><span class=3D"=
pun" style=3D"font-family: inherit; font-size: inherit; font-style: inherit=
; font-variant-caps: inherit; line-height: inherit; vertical-align: baselin=
e; color: rgb(48, 51, 54);">::</span><span class=3D"kwd" style=3D"font-fami=
ly: inherit; font-size: inherit; font-style: inherit; font-variant-caps: in=
herit; line-height: inherit; vertical-align: baseline; color: rgb(16, 16, 1=
48);">function</span><span class=3D"pun" style=3D"font-family: inherit; fon=
t-size: inherit; font-style: inherit; font-variant-caps: inherit; line-heig=
ht: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">&lt;</span>=
<span class=3D"kwd" style=3D"font-family: inherit; font-size: inherit; font=
-style: inherit; font-variant-caps: inherit; line-height: inherit; vertical=
-align: baseline; color: rgb(16, 16, 148);">long</span><span class=3D"pun" =
style=3D"font-family: inherit; font-size: inherit; font-style: inherit; fon=
t-variant-caps: inherit; line-height: inherit; vertical-align: baseline; co=
lor: rgb(48, 51, 54);">()&gt;</span><span class=3D"pln" style=3D"font-famil=
y: inherit; font-size: inherit; font-style: inherit; font-variant-caps: inh=
erit; line-height: inherit; vertical-align: baseline; color: rgb(48, 51, 54=
);"> f </span><span class=3D"pun" style=3D"font-family: inherit; font-size:=
 inherit; font-style: inherit; font-variant-caps: inherit; line-height: inh=
erit; vertical-align: baseline; color: rgb(48, 51, 54);">=3D</span><span cl=
ass=3D"pln" style=3D"font-family: inherit; font-size: inherit; font-style: =
inherit; font-variant-caps: inherit; line-height: inherit; vertical-align: =
baseline; color: rgb(48, 51, 54);"> xx</span><span class=3D"pun" style=3D"f=
ont-family: inherit; font-size: inherit; font-style: inherit; font-variant-=
caps: inherit; line-height: inherit; vertical-align: baseline; color: rgb(4=
8, 51, 54);">;</span><span class=3D"pln" style=3D"font-family: inherit; fon=
t-size: inherit; font-style: inherit; font-variant-caps: inherit; line-heig=
ht: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">
</span><span class=3D"kwd" style=3D"font-family: inherit; font-size: inheri=
t; font-style: inherit; font-variant-caps: inherit; line-height: inherit; v=
ertical-align: baseline; color: rgb(16, 16, 148);">assert</span><span class=
=3D"pun" style=3D"font-family: inherit; font-size: inherit; font-style: inh=
erit; font-variant-caps: inherit; line-height: inherit; vertical-align: bas=
eline; color: rgb(48, 51, 54);">(</span><span class=3D"pln" style=3D"font-f=
amily: inherit; font-size: inherit; font-style: inherit; font-variant-caps:=
 inherit; line-height: inherit; vertical-align: baseline; color: rgb(48, 51=
, 54);"> </span><span class=3D"pun" style=3D"font-family: inherit; font-siz=
e: inherit; font-style: inherit; font-variant-caps: inherit; line-height: i=
nherit; vertical-align: baseline; color: rgb(48, 51, 54);">*</span><span cl=
ass=3D"pln" style=3D"font-family: inherit; font-size: inherit; font-style: =
inherit; font-variant-caps: inherit; line-height: inherit; vertical-align: =
baseline; color: rgb(48, 51, 54);">f</span><span class=3D"pun" style=3D"fon=
t-family: inherit; font-size: inherit; font-style: inherit; font-variant-ca=
ps: inherit; line-height: inherit; vertical-align: baseline; color: rgb(48,=
 51, 54);">.</span><span class=3D"pln" style=3D"font-family: inherit; font-=
size: inherit; font-style: inherit; font-variant-caps: inherit; line-height=
: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">target</span>=
<span class=3D"pun" style=3D"font-family: inherit; font-size: inherit; font=
-style: inherit; font-variant-caps: inherit; line-height: inherit; vertical=
-align: baseline; color: rgb(48, 51, 54);">&lt;</span><span class=3D"typ" s=
tyle=3D"font-family: inherit; font-size: inherit; font-style: inherit; font=
-variant-caps: inherit; line-height: inherit; vertical-align: baseline; col=
or: rgb(43, 145, 175);">Type</span><span class=3D"pun" style=3D"font-family=
: inherit; font-size: inherit; font-style: inherit; font-variant-caps: inhe=
rit; line-height: inherit; vertical-align: baseline; color: rgb(48, 51, 54)=
;">&gt;()</span><span class=3D"pln" style=3D"font-family: inherit; font-siz=
e: inherit; font-style: inherit; font-variant-caps: inherit; line-height: i=
nherit; vertical-align: baseline; color: rgb(48, 51, 54);"> </span><span cl=
ass=3D"pun" style=3D"font-family: inherit; font-size: inherit; font-style: =
inherit; font-variant-caps: inherit; line-height: inherit; vertical-align: =
baseline; color: rgb(48, 51, 54);">=3D=3D</span><span class=3D"pln" style=
=3D"font-family: inherit; font-size: inherit; font-style: inherit; font-var=
iant-caps: inherit; line-height: inherit; vertical-align: baseline; color: =
rgb(48, 51, 54);"> xx </span><span class=3D"pun" style=3D"font-family: inhe=
rit; font-size: inherit; font-style: inherit; font-variant-caps: inherit; l=
ine-height: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">);<=
/span><span class=3D"pln" style=3D"font-family: inherit; font-size: inherit=
; font-style: inherit; font-variant-caps: inherit; line-height: inherit; ve=
rtical-align: baseline; color: rgb(48, 51, 54);">

</span><span class=3D"pln" style=3D"font-family: inherit; font-size: inheri=
t; font-style: inherit; font-variant-caps: inherit; line-height: inherit; v=
ertical-align: baseline; color: rgb(48, 51, 54);">std</span><span class=3D"=
pun" style=3D"font-family: inherit; font-size: inherit; font-style: inherit=
; font-variant-caps: inherit; line-height: inherit; vertical-align: baselin=
e; color: rgb(48, 51, 54);">::</span><span class=3D"pln" style=3D"font-fami=
ly: inherit; font-size: inherit; font-style: inherit; font-variant-caps: in=
herit; line-height: inherit; vertical-align: baseline; color: rgb(48, 51, 5=
4);">shared_ptr</span><span class=3D"str" style=3D"font-family: inherit; fo=
nt-size: inherit; font-style: inherit; font-variant-caps: inherit; line-hei=
ght: inherit; vertical-align: baseline; color: rgb(125, 39, 39);">&lt;int&g=
t;</span><span class=3D"pln" style=3D"font-family: inherit; font-size: inhe=
rit; font-style: inherit; font-variant-caps: inherit; line-height: inherit;=
 vertical-align: baseline; color: rgb(48, 51, 54);"> p</span><span class=3D=
"pun" style=3D"font-family: inherit; font-size: inherit; font-style: inheri=
t; font-variant-caps: inherit; line-height: inherit; vertical-align: baseli=
ne; color: rgb(48, 51, 54);">(</span><span class=3D"kwd" style=3D"font-fami=
ly: inherit; font-size: inherit; font-style: inherit; font-variant-caps: in=
herit; line-height: inherit; vertical-align: baseline; color: rgb(16, 16, 1=
48);">new</span><span class=3D"pln" style=3D"font-family: inherit; font-siz=
e: inherit; font-style: inherit; font-variant-caps: inherit; line-height: i=
nherit; vertical-align: baseline; color: rgb(48, 51, 54);"> </span><span cl=
ass=3D"kwd" style=3D"font-family: inherit; font-size: inherit; font-style: =
inherit; font-variant-caps: inherit; line-height: inherit; vertical-align: =
baseline; color: rgb(16, 16, 148);">int</span><span class=3D"pun" style=3D"=
font-family: inherit; font-size: inherit; font-style: inherit; font-variant=
-caps: inherit; line-height: inherit; vertical-align: baseline; color: rgb(=
48, 51, 54);">,</span><span class=3D"pln" style=3D"font-family: inherit; fo=
nt-size: inherit; font-style: inherit; font-variant-caps: inherit; line-hei=
ght: inherit; vertical-align: baseline; color: rgb(48, 51, 54);"> xx</span>=
<span class=3D"pun" style=3D"font-family: inherit; font-size: inherit; font=
-style: inherit; font-variant-caps: inherit; line-height: inherit; vertical=
-align: baseline; color: rgb(48, 51, 54);">);</span><span class=3D"pln" sty=
le=3D"font-family: inherit; font-size: inherit; font-style: inherit; font-v=
ariant-caps: inherit; line-height: inherit; vertical-align: baseline; color=
: rgb(48, 51, 54);">
</span><span class=3D"kwd" style=3D"font-family: inherit; font-size: inheri=
t; font-style: inherit; font-variant-caps: inherit; line-height: inherit; v=
ertical-align: baseline; color: rgb(16, 16, 148);">assert</span><span class=
=3D"pun" style=3D"font-family: inherit; font-size: inherit; font-style: inh=
erit; font-variant-caps: inherit; line-height: inherit; vertical-align: bas=
eline; color: rgb(48, 51, 54);">(</span><span class=3D"pln" style=3D"font-f=
amily: inherit; font-size: inherit; font-style: inherit; font-variant-caps:=
 inherit; line-height: inherit; vertical-align: baseline; color: rgb(48, 51=
, 54);"> </span><span class=3D"pun" style=3D"font-family: inherit; font-siz=
e: inherit; font-style: inherit; font-variant-caps: inherit; line-height: i=
nherit; vertical-align: baseline; color: rgb(48, 51, 54);">*</span><span cl=
ass=3D"pln" style=3D"font-family: inherit; font-size: inherit; font-style: =
inherit; font-variant-caps: inherit; line-height: inherit; vertical-align: =
baseline; color: rgb(48, 51, 54);">std</span><span class=3D"pun" style=3D"f=
ont-family: inherit; font-size: inherit; font-style: inherit; font-variant-=
caps: inherit; line-height: inherit; vertical-align: baseline; color: rgb(4=
8, 51, 54);">::</span><span class=3D"pln" style=3D"font-family: inherit; fo=
nt-size: inherit; font-style: inherit; font-variant-caps: inherit; line-hei=
ght: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">get_delete=
r</span><span class=3D"pun" style=3D"font-family: inherit; font-size: inher=
it; font-style: inherit; font-variant-caps: inherit; line-height: inherit; =
vertical-align: baseline; color: rgb(48, 51, 54);">&lt;</span><span class=
=3D"typ" style=3D"font-family: inherit; font-size: inherit; font-style: inh=
erit; font-variant-caps: inherit; line-height: inherit; vertical-align: bas=
eline; color: rgb(43, 145, 175);">Type</span><span class=3D"pun" style=3D"f=
ont-family: inherit; font-size: inherit; font-style: inherit; font-variant-=
caps: inherit; line-height: inherit; vertical-align: baseline; color: rgb(4=
8, 51, 54);">&gt;(</span><span class=3D"pln" style=3D"font-family: inherit;=
 font-size: inherit; font-style: inherit; font-variant-caps: inherit; line-=
height: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">p</span=
><span class=3D"pun" style=3D"font-family: inherit; font-size: inherit; fon=
t-style: inherit; font-variant-caps: inherit; line-height: inherit; vertica=
l-align: baseline; color: rgb(48, 51, 54);">)</span><span class=3D"pln" sty=
le=3D"font-family: inherit; font-size: inherit; font-style: inherit; font-v=
ariant-caps: inherit; line-height: inherit; vertical-align: baseline; color=
: rgb(48, 51, 54);"> </span><span class=3D"pun" style=3D"font-family: inher=
it; font-size: inherit; font-style: inherit; font-variant-caps: inherit; li=
ne-height: inherit; vertical-align: baseline; color: rgb(48, 51, 54);">=3D=
=3D</span><span class=3D"pln" style=3D"font-family: inherit; font-size: inh=
erit; font-style: inherit; font-variant-caps: inherit; line-height: inherit=
; vertical-align: baseline; color: rgb(48, 51, 54);"> xx </span><span class=
=3D"pun" style=3D"font-family: inherit; font-size: inherit; font-style: inh=
erit; font-variant-caps: inherit; line-height: inherit; vertical-align: bas=
eline; color: rgb(48, 51, 54);">);</span></code></pre></div><div>(from=C2=
=A0<a href=3D"https://stackoverflow.com/questions/44788017/retrieve-typeid-=
of-shared-ptr-deleter">https://stackoverflow.com/questions/44788017/retriev=
e-typeid-of-shared-ptr-deleter</a>)<br></div><div>(and from this thread, we=
 can add std::exception_ptr to the list of type-erased types)</div><div><br=
></div><div>I&#39;m not sure &quot;any_cast&quot; would necessarily be the =
right spelling, but it is pretty awkward IMHO that various library designer=
s keep reinventing it over and over with different spellings.</div><div><br=
></div><div>=E2=80=93Arthur</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">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/4c872807-7d50-4b58-bbb5-595a8bac1246%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/4c872807-7d50-4b58-bbb5-595a8bac1246=
%40isocpp.org</a>.<br />

------=_Part_296_2103261817.1501802263600--

------=_Part_295_1335713273.1501802263600--

.
