Topic: Researching any-like general type erasure (not a


Author: germandiago@gmail.com
Date: Thu, 1 May 2014 11:04:08 -0700 (PDT)
Raw View
------=_Part_43_6226503.1398967448947
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hello everyone,

There is a thing I am really interested in that I think would be of general=
=20
interest for the c++ community.
I would like to generate some discussion on the topic. The intention of=20
this post is to collect ideas
and prior art to any-type like erasure.

So far we have library versions of any-type like erasure, but none of them=
=20
is perfect. For reference
on the available solutions I will leave here the excellent blog entries=20
from Andrzej:

    http://akrzemi1.wordpress.com/2013/11/18/type-erasure-part-i/
    http://akrzemi1.wordpress.com/2013/12/06/type-erasure-part-ii/
    http://akrzemi1.wordpress.com/2013/12/11/type-erasure-part-iii/
    http://akrzemi1.wordpress.com/2014/01/13/type-erasure-part-iv/
    =20
What I wonder is how we could approach a perfect solution to have this into=
=20
the language avoiding the=20
boiler-plate.

For now I can think of several solutions:

1. Build type erasure directly into the language. This would require maybe,=
=20
and would be related also
to overloading operator. (which currently cannot be done). Overloading this=
=20
operator could enable
classes like copy_on_write<T> and optional<T> to have the same interface as=
=20
the original class,
but this goes beyond the intention of this research.
2. Take advantage of static type reflection<http://www.open-std.org/jtc1/sc=
22/wg21/docs/papers/2014/n3951.pdf>
 + code generation<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/=
n3883.html> to=20
build a library solution.
3. Generate a runtime erased interface from a concept specification?


Personally I would like to get rid of traditional OO=20
inheritance and use this solution all the time, but it=C2=B4s too cumbersom=
e  in=20
general.

Is there anyone I am not aware of working on this? Looking at Sean Parent's=
=20
presentation, I think
he must have a good idea of what we would need to make this happen?=20


--=20

---=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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

------=_Part_43_6226503.1398967448947
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello everyone,<div><br></div><div>There is a thing I am r=
eally interested in that I think would be of general interest for the c++ c=
ommunity.</div><div>I would like to generate some discussion on the topic. =
The intention of this post is to collect ideas</div><div>and prior art to a=
ny-type like erasure.</div><div><br></div><div>So far we have library versi=
ons of any-type like erasure, but none of them is perfect. For reference</d=
iv><div>on the available solutions I will leave here the excellent blog ent=
ries from Andrzej:</div><div><br></div><div>&nbsp; &nbsp;&nbsp;<a href=3D"h=
ttp://akrzemi1.wordpress.com/2013/11/18/type-erasure-part-i/">http://akrzem=
i1.wordpress.com/2013/11/18/type-erasure-part-i/</a><br></div><div>&nbsp; &=
nbsp;&nbsp;<a href=3D"http://akrzemi1.wordpress.com/2013/12/06/type-erasure=
-part-ii/">http://akrzemi1.wordpress.com/2013/12/06/type-erasure-part-ii/</=
a><br></div><div>&nbsp; &nbsp;&nbsp;<a href=3D"http://akrzemi1.wordpress.co=
m/2013/12/11/type-erasure-part-iii/">http://akrzemi1.wordpress.com/2013/12/=
11/type-erasure-part-iii/</a></div><div>&nbsp; &nbsp;&nbsp;<a href=3D"http:=
//akrzemi1.wordpress.com/2014/01/13/type-erasure-part-iv/">http://akrzemi1.=
wordpress.com/2014/01/13/type-erasure-part-iv/</a></div><div>&nbsp; &nbsp; =
&nbsp;</div><div>What I wonder is how we could approach a perfect solution =
to have this into the language avoiding the&nbsp;</div><div>boiler-plate.</=
div><div><br></div><div>For now I can think of several solutions:</div><div=
><br></div><div>1. Build type erasure directly into the language. This woul=
d require maybe, and would be related also</div><div>to overloading operato=
r. (which currently cannot be done). Overloading this operator could enable=
</div><div>classes like copy_on_write&lt;T&gt; and optional&lt;T&gt; to hav=
e the same interface as the original class,</div><div>but this goes beyond =
the intention of this research.</div><div>2. Take advantage of <a href=3D"h=
ttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3951.pdf">static ty=
pe reflection</a>&nbsp;+&nbsp;<a href=3D"http://www.open-std.org/jtc1/sc22/=
wg21/docs/papers/2014/n3883.html">code generation</a>&nbsp;to build a libra=
ry solution.</div><div>3. Generate a runtime erased interface from a concep=
t specification?</div><div><br></div><div><br></div><div>Personally I would=
 like to get rid of traditional OO&nbsp;</div><div>inheritance and use this=
 solution all the time, but it=C2=B4s too cumbersome &nbsp;in general.</div=
><div><br></div><div>Is there anyone I am not aware of working on this? Loo=
king at Sean Parent's presentation, I think</div><div>he must have a good i=
dea of what we would need to make this happen?&nbsp;</div><div><br></div><d=
iv><br></div></div>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_43_6226503.1398967448947--

.


Author: germandiago@gmail.com
Date: Thu, 1 May 2014 11:09:27 -0700 (PDT)
Raw View
------=_Part_54_25944340.1398967767438
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

In 2. I forgot to mention that the library solution would be something like=
=20
poly<myclass>, that would
generate a class that has the same interface as myclass, but it's=20
polymorphic.

We also should consider how a poly_ref<myclass> should behave.



El viernes, 2 de mayo de 2014 01:04:08 UTC+7, germa...@gmail.com escribi=C3=
=B3:
>
> Hello everyone,
>
> There is a thing I am really interested in that I think would be of=20
> general interest for the c++ community.
> I would like to generate some discussion on the topic. The intention of=
=20
> this post is to collect ideas
> and prior art to any-type like erasure.
>
> So far we have library versions of any-type like erasure, but none of the=
m=20
> is perfect. For reference
> on the available solutions I will leave here the excellent blog entries=
=20
> from Andrzej:
>
>     http://akrzemi1.wordpress.com/2013/11/18/type-erasure-part-i/
>     http://akrzemi1.wordpress.com/2013/12/06/type-erasure-part-ii/
>     http://akrzemi1.wordpress.com/2013/12/11/type-erasure-part-iii/
>     http://akrzemi1.wordpress.com/2014/01/13/type-erasure-part-iv/
>     =20
> What I wonder is how we could approach a perfect solution to have this=20
> into the language avoiding the=20
> boiler-plate.
>
> For now I can think of several solutions:
>
> 1. Build type erasure directly into the language. This would require=20
> maybe, and would be related also
> to overloading operator. (which currently cannot be done). Overloading=20
> this operator could enable
> classes like copy_on_write<T> and optional<T> to have the same interface=
=20
> as the original class,
> but this goes beyond the intention of this research.
> 2. Take advantage of static type reflection<http://www.open-std.org/jtc1/=
sc22/wg21/docs/papers/2014/n3951.pdf>
>  + code generation<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/201=
4/n3883.html> to=20
> build a library solution.
> 3. Generate a runtime erased interface from a concept specification?
>
>
> Personally I would like to get rid of traditional OO=20
> inheritance and use this solution all the time, but it=C2=B4s too cumbers=
ome=20
>  in general.
>
> Is there anyone I am not aware of working on this? Looking at Sean=20
> Parent's presentation, I think
> he must have a good idea of what we would need to make this happen?=20
>
>
>

--=20

---=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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

------=_Part_54_25944340.1398967767438
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">In 2. I forgot to mention that the library solution would =
be something like poly&lt;myclass&gt;, that would<div>generate a class that=
 has the same interface as myclass, but it's polymorphic.</div><div><br></d=
iv><div>We also should consider how a poly_ref&lt;myclass&gt; should behave=
..</div><div><br></div><div><br><br>El viernes, 2 de mayo de 2014 01:04:08 U=
TC+7, germa...@gmail.com  escribi=C3=B3:<blockquote class=3D"gmail_quote" s=
tyle=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-le=
ft: 1ex;"><div dir=3D"ltr">Hello everyone,<div><br></div><div>There is a th=
ing I am really interested in that I think would be of general interest for=
 the c++ community.</div><div>I would like to generate some discussion on t=
he topic. The intention of this post is to collect ideas</div><div>and prio=
r art to any-type like erasure.</div><div><br></div><div>So far we have lib=
rary versions of any-type like erasure, but none of them is perfect. For re=
ference</div><div>on the available solutions I will leave here the excellen=
t blog entries from Andrzej:</div><div><br></div><div>&nbsp; &nbsp;&nbsp;<a=
 href=3D"http://akrzemi1.wordpress.com/2013/11/18/type-erasure-part-i/" tar=
get=3D"_blank" onmousedown=3D"this.href=3D'http://www.google.com/url?q\75ht=
tp%3A%2F%2Fakrzemi1.wordpress.com%2F2013%2F11%2F18%2Ftype-erasure-part-i%2F=
\46sa\75D\46sntz\0751\46usg\75AFQjCNGxuRRUj0AHB-oMDptzSZrquATrjg';return tr=
ue;" onclick=3D"this.href=3D'http://www.google.com/url?q\75http%3A%2F%2Fakr=
zemi1.wordpress.com%2F2013%2F11%2F18%2Ftype-erasure-part-i%2F\46sa\75D\46sn=
tz\0751\46usg\75AFQjCNGxuRRUj0AHB-oMDptzSZrquATrjg';return true;">http://ak=
rzemi1.wordpress.<wbr>com/2013/11/18/type-erasure-<wbr>part-i/</a><br></div=
><div>&nbsp; &nbsp;&nbsp;<a href=3D"http://akrzemi1.wordpress.com/2013/12/0=
6/type-erasure-part-ii/" target=3D"_blank" onmousedown=3D"this.href=3D'http=
://www.google.com/url?q\75http%3A%2F%2Fakrzemi1.wordpress.com%2F2013%2F12%2=
F06%2Ftype-erasure-part-ii%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFO-A7sqpr5=
9SJmi_zp0SrmoVa62Q';return true;" onclick=3D"this.href=3D'http://www.google=
..com/url?q\75http%3A%2F%2Fakrzemi1.wordpress.com%2F2013%2F12%2F06%2Ftype-er=
asure-part-ii%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFO-A7sqpr59SJmi_zp0Srmo=
Va62Q';return true;">http://akrzemi1.wordpress.<wbr>com/2013/12/06/type-era=
sure-<wbr>part-ii/</a><br></div><div>&nbsp; &nbsp;&nbsp;<a href=3D"http://a=
krzemi1.wordpress.com/2013/12/11/type-erasure-part-iii/" target=3D"_blank" =
onmousedown=3D"this.href=3D'http://www.google.com/url?q\75http%3A%2F%2Fakrz=
emi1.wordpress.com%2F2013%2F12%2F11%2Ftype-erasure-part-iii%2F\46sa\75D\46s=
ntz\0751\46usg\75AFQjCNFqlbFNBJmBsSoALvNz3Z8dWgSySQ';return true;" onclick=
=3D"this.href=3D'http://www.google.com/url?q\75http%3A%2F%2Fakrzemi1.wordpr=
ess.com%2F2013%2F12%2F11%2Ftype-erasure-part-iii%2F\46sa\75D\46sntz\0751\46=
usg\75AFQjCNFqlbFNBJmBsSoALvNz3Z8dWgSySQ';return true;">http://akrzemi1.wor=
dpress.<wbr>com/2013/12/11/type-erasure-<wbr>part-iii/</a></div><div>&nbsp;=
 &nbsp;&nbsp;<a href=3D"http://akrzemi1.wordpress.com/2014/01/13/type-erasu=
re-part-iv/" target=3D"_blank" onmousedown=3D"this.href=3D'http://www.googl=
e.com/url?q\75http%3A%2F%2Fakrzemi1.wordpress.com%2F2014%2F01%2F13%2Ftype-e=
rasure-part-iv%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNE6-yO-I-SjVbWG5wV9mpPw=
0G3Rdg';return true;" onclick=3D"this.href=3D'http://www.google.com/url?q\7=
5http%3A%2F%2Fakrzemi1.wordpress.com%2F2014%2F01%2F13%2Ftype-erasure-part-i=
v%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNE6-yO-I-SjVbWG5wV9mpPw0G3Rdg';retur=
n true;">http://akrzemi1.wordpress.<wbr>com/2014/01/13/type-erasure-<wbr>pa=
rt-iv/</a></div><div>&nbsp; &nbsp; &nbsp;</div><div>What I wonder is how we=
 could approach a perfect solution to have this into the language avoiding =
the&nbsp;</div><div>boiler-plate.</div><div><br></div><div>For now I can th=
ink of several solutions:</div><div><br></div><div>1. Build type erasure di=
rectly into the language. This would require maybe, and would be related al=
so</div><div>to overloading operator. (which currently cannot be done). Ove=
rloading this operator could enable</div><div>classes like copy_on_write&lt=
;T&gt; and optional&lt;T&gt; to have the same interface as the original cla=
ss,</div><div>but this goes beyond the intention of this research.</div><di=
v>2. Take advantage of <a href=3D"http://www.open-std.org/jtc1/sc22/wg21/do=
cs/papers/2014/n3951.pdf" target=3D"_blank" onmousedown=3D"this.href=3D'htt=
p://www.google.com/url?q\75http%3A%2F%2Fwww.open-std.org%2Fjtc1%2Fsc22%2Fwg=
21%2Fdocs%2Fpapers%2F2014%2Fn3951.pdf\46sa\75D\46sntz\0751\46usg\75AFQjCNHX=
a2PzWy0XF9fOcM7tdabFCmqXcw';return true;" onclick=3D"this.href=3D'http://ww=
w.google.com/url?q\75http%3A%2F%2Fwww.open-std.org%2Fjtc1%2Fsc22%2Fwg21%2Fd=
ocs%2Fpapers%2F2014%2Fn3951.pdf\46sa\75D\46sntz\0751\46usg\75AFQjCNHXa2PzWy=
0XF9fOcM7tdabFCmqXcw';return true;">static type reflection</a>&nbsp;+&nbsp;=
<a href=3D"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3883.ht=
ml" target=3D"_blank" onmousedown=3D"this.href=3D'http://www.google.com/url=
?q\75http%3A%2F%2Fwww.open-std.org%2Fjtc1%2Fsc22%2Fwg21%2Fdocs%2Fpapers%2F2=
014%2Fn3883.html\46sa\75D\46sntz\0751\46usg\75AFQjCNHrWR0lVjck8pCgRSgDxxwUH=
3nfOg';return true;" onclick=3D"this.href=3D'http://www.google.com/url?q\75=
http%3A%2F%2Fwww.open-std.org%2Fjtc1%2Fsc22%2Fwg21%2Fdocs%2Fpapers%2F2014%2=
Fn3883.html\46sa\75D\46sntz\0751\46usg\75AFQjCNHrWR0lVjck8pCgRSgDxxwUH3nfOg=
';return true;">code generation</a>&nbsp;to build a library solution.</div>=
<div>3. Generate a runtime erased interface from a concept specification?</=
div><div><br></div><div><br></div><div>Personally I would like to get rid o=
f traditional OO&nbsp;</div><div>inheritance and use this solution all the =
time, but it=C2=B4s too cumbersome &nbsp;in general.</div><div><br></div><d=
iv>Is there anyone I am not aware of working on this? Looking at Sean Paren=
t's presentation, I think</div><div>he must have a good idea of what we wou=
ld need to make this happen?&nbsp;</div><div><br></div><div><br></div></div=
></blockquote></div></div>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_54_25944340.1398967767438--

.


Author: Thiago Macieira <thiago@macieira.org>
Date: Thu, 01 May 2014 12:05:40 -0700
Raw View
Em qui 01 maio 2014, =E0s 11:04:08, germandiago@gmail.com escreveu:
> Hello everyone,
>=20
> There is a thing I am really interested in that I think would be of gener=
al
> interest for the c++ community.
> I would like to generate some discussion on the topic. The intention of
> this post is to collect ideas
> and prior art to any-type like erasure.
>=20
> So far we have library versions of any-type like erasure, but none of the=
m
> is perfect. For reference
> on the available solutions I will leave here the excellent blog entries
> from Andrzej:
>=20
>     http://akrzemi1.wordpress.com/2013/11/18/type-erasure-part-i/
>     http://akrzemi1.wordpress.com/2013/12/06/type-erasure-part-ii/
>     http://akrzemi1.wordpress.com/2013/12/11/type-erasure-part-iii/
>     http://akrzemi1.wordpress.com/2014/01/13/type-erasure-part-iv/

Please see also=20
https://github.com/boostcon/cppnow_presentations_2013/blob/master/thu/Dynam=
icCpp.pdf?raw=3Dtrue

And QVariant.
--=20
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

--=20

---=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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

.


Author: Bjorn Reese <breese@mail1.stofanet.dk>
Date: Thu, 01 May 2014 21:19:30 +0200
Raw View
On 05/01/2014 09:05 PM, Thiago Macieira wrote:

> Please see also
> https://github.com/boostcon/cppnow_presentations_2013/blob/master/thu/DynamicCpp.pdf?raw=true

 From the same author:

   http://accu.org/index.php/journals/1855
   http://accu.org/index.php/journals/1841

--

---
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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

.


Author: Tony V E <tvaneerd@gmail.com>
Date: Thu, 1 May 2014 16:54:55 -0400
Raw View
--001a11c22568969f5304f85ce0ee
Content-Type: text/plain; charset=UTF-8

On Thu, May 1, 2014 at 2:04 PM, <germandiago@gmail.com> wrote:

> Hello everyone,
>
> There is a thing I am really interested in that I think would be of
> general interest for the c++ community.
> I would like to generate some discussion on the topic. The intention of
> this post is to collect ideas
> and prior art to any-type like erasure.
>
> So far we have library versions of any-type like erasure, but none of them
> is perfect. For reference
> on the available solutions I will leave here the excellent blog entries
> from Andrzej:
>
>     http://akrzemi1.wordpress.com/2013/11/18/type-erasure-part-i/
>     http://akrzemi1.wordpress.com/2013/12/06/type-erasure-part-ii/
>     http://akrzemi1.wordpress.com/2013/12/11/type-erasure-part-iii/
>     http://akrzemi1.wordpress.com/2014/01/13/type-erasure-part-iv/
>
> What I wonder is how we could approach a perfect solution to have this
> into the language avoiding the
> boiler-plate.
>
> For now I can think of several solutions:
>
> 1. Build type erasure directly into the language. This would require
> maybe, and would be related also
> to overloading operator. (which currently cannot be done). Overloading
> this operator could enable
> classes like copy_on_write<T> and optional<T> to have the same interface
> as the original class,
> but this goes beyond the intention of this research.
>


https://github.com/boostcon/cppnow_presentations_2013/blob/master/thu/overloading_dot.pdf?raw=true

--

---
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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

--001a11c22568969f5304f85ce0ee
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><br><div class=3D"gmail=
_quote">On Thu, May 1, 2014 at 2:04 PM,  <span dir=3D"ltr">&lt;<a href=3D"m=
ailto:germandiago@gmail.com" target=3D"_blank">germandiago@gmail.com</a>&gt=
;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hello ev=
eryone,<div><br></div><div>There is a thing I am really interested in that =
I think would be of general interest for the c++ community.</div>
<div>I would like to generate some discussion on the topic. The intention o=
f this post is to collect ideas</div><div>and prior art to any-type like er=
asure.</div><div><br></div><div>So far we have library versions of any-type=
 like erasure, but none of them is perfect. For reference</div>
<div>on the available solutions I will leave here the excellent blog entrie=
s from Andrzej:</div><div><br></div><div>=C2=A0 =C2=A0=C2=A0<a href=3D"http=
://akrzemi1.wordpress.com/2013/11/18/type-erasure-part-i/" target=3D"_blank=
">http://akrzemi1.wordpress.com/2013/11/18/type-erasure-part-i/</a><br>
</div><div>=C2=A0 =C2=A0=C2=A0<a href=3D"http://akrzemi1.wordpress.com/2013=
/12/06/type-erasure-part-ii/" target=3D"_blank">http://akrzemi1.wordpress.c=
om/2013/12/06/type-erasure-part-ii/</a><br></div><div>=C2=A0 =C2=A0=C2=A0<a=
 href=3D"http://akrzemi1.wordpress.com/2013/12/11/type-erasure-part-iii/" t=
arget=3D"_blank">http://akrzemi1.wordpress.com/2013/12/11/type-erasure-part=
-iii/</a></div>
<div>=C2=A0 =C2=A0=C2=A0<a href=3D"http://akrzemi1.wordpress.com/2014/01/13=
/type-erasure-part-iv/" target=3D"_blank">http://akrzemi1.wordpress.com/201=
4/01/13/type-erasure-part-iv/</a></div><div>=C2=A0 =C2=A0 =C2=A0</div><div>=
What I wonder is how we could approach a perfect solution to have this into=
 the language avoiding the=C2=A0</div>
<div>boiler-plate.</div><div><br></div><div>For now I can think of several =
solutions:</div><div><br></div><div>1. Build type erasure directly into the=
 language. This would require maybe, and would be related also</div><div>
to overloading operator. (which currently cannot be done). Overloading this=
 operator could enable</div><div>classes like copy_on_write&lt;T&gt; and op=
tional&lt;T&gt; to have the same interface as the original class,</div>
<div>but this goes beyond the intention of this research.</div></div></bloc=
kquote><div><br><br><a href=3D"https://github.com/boostcon/cppnow_presentat=
ions_2013/blob/master/thu/overloading_dot.pdf?raw=3Dtrue">https://github.co=
m/boostcon/cppnow_presentations_2013/blob/master/thu/overloading_dot.pdf?ra=
w=3Dtrue</a><br>
<span class=3D""></span><br></div></div><br></div></div>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

--001a11c22568969f5304f85ce0ee--

.