220 37895 <2d519188-69b6-434d-9573-9875a7806f05@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: inkwizytoryankes@gmail.com
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: API versioning: functions: overload; classes:
 typedef; variables: <meep>
Date: Fri, 20 Apr 2018 05:25:26 -0700 (PDT)
Lines: 214
Approved: news@gmane.org
Message-ID: <2d519188-69b6-434d-9573-9875a7806f05@isocpp.org>
References: <2e63ae60069efc0fb81610ac2bd35491@kdab.com>
 <CAFk2RUbmRs7E5wZ6xFKL7ehXc8pn3g9Hj-n8p=FcA1qU-QHeMw@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_8494_1913778706.1524227126613"
X-Trace: blaine.gmane.org 1524227003 27133 195.159.176.226 (20 Apr 2018 12:23:23 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Fri, 20 Apr 2018 12:23:23 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDDLTAGNTIBBBN5Y47LAKGQE2ZNW3KI@isocpp.org Fri Apr 20 14:23:19 2018
Return-path: <std-proposals+bncBDDLTAGNTIBBBN5Y47LAKGQE2ZNW3KI@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-vk0-f70.google.com ([209.85.213.70])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBDDLTAGNTIBBBN5Y47LAKGQE2ZNW3KI@isocpp.org>)
	id 1f9V4P-0006wZ-Mi
	for gclcip-std-proposals@m.gmane.org; Fri, 20 Apr 2018 14:23:17 +0200
Original-Received: by mail-vk0-f70.google.com with SMTP id z78sf5486400vkd.14
        for <gclcip-std-proposals@m.gmane.org>; Fri, 20 Apr 2018 05:25:28 -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=eUn1yOue3P6V/i4aA/zW8Y9PlUOuA33DlM85C2+vHzE=;
        b=Y4XeoaMJjRnMmI7q5knwrITlsO88R/Hr+koE/vdLxb2dEacJW8sU+Dvd+Vu5A4ic1n
         45dYM0c4Adsz5wdnWCWRNrUFoDLEuNct+epbYyn7q3MU/LiLPPaaP78TjV73habKdIOw
         BwXIRb+NlqHRaz8Ed0+mPfIE4sdP/hhBVatL/ovQ6MuC5cho0HNTtLYNYikcorMj3Z2+
         1vVuRv06tBb/KqwN7TwNWqlHOg/B6RNQlMew0zt5oBVNRipm0UPdkGFBdB4nWOkwHwJC
         QpZvegn/9gbVH3Gou8qVpVWCf8uB8nbGXv5PkQrabpETyI8sm1gpoUE3KWT3u3lvDXDM
         i03A==
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=eUn1yOue3P6V/i4aA/zW8Y9PlUOuA33DlM85C2+vHzE=;
        b=F3pZ2DVejCXVvWmv6ppSPLUnZYWluNRg8Z+6/EsytRYDKCTKZivhz/8aX6bIj1+GEH
         5yXTufybGnEkOiIvROK1k/iglBUf5aj6xrYYfe1jR94uS5HSIVMlNsZ/QkQN3HPtjOm8
         gAEwTOY2kyolex6BNyIFumMyH6aFMXmjknS7kUmmKRlHyWwkcdkHQtAxXtrq3SLH+8ja
         AGDsIRE//A5JcgWXwgE1EtdGvNEt0M7IxctVpeRRWOf4B1SlDmSIF8U0cnCf86CaFLWD
         LLlyQH+cO+bqEahHDqCRUlLFu/yEa/9J0WQiJ2nqs2wLNZmQ7pC938rDbyQYjXwzY98t
         LnuQ==
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=eUn1yOue3P6V/i4aA/zW8Y9PlUOuA33DlM85C2+vHzE=;
        b=XuHi4DtcMdLY7xmiFt6fwnd/ru5N7krVJbgllICEOYgQXxtt8wVjOZLGOvnSLVy6Xp
         JBVgTZ/Os9tx67ub0k0v7tD8zPFKTF2395iYeg39S79DAN46U387489blxbK+Xt2Dcaj
         M8P3X8kOq/l3VG84fIWtnQMFeQbCcpKzPEv53JRoL4ZR3TP5h4pZQGoofgXhKzYZACb9
         6yAYAWB453WQMwULF8yNhSDAcuIWoLqXK9Iphw1jst1BwQ1KqGJzI3rav6l9O6h2uAmq
         zxB8aQUOiVVam20PJXvy1v7OXLMLX6gxOqO8mLlwBh/tiJkIuDpJoimch7qJ6Tr4R1Pa
         5Xjg==
X-Gm-Message-State: ALQs6tA+SFXxykfaiAoSDz1BmhBgdOcb0xiCXZ4lVNGFVb1y56o7omMs
	YG/r7UYU99p9RHiIQIibkJqwjg==
X-Google-Smtp-Source: AIpwx4+xQf8sD12BR1cO8Ef7Kzak3V7XxE3WRsHsmg9lrjET//m/B0weJEHZ5TPSMJv5OiSL1R/Aow==
X-Received: by 10.31.66.11 with SMTP id p11mr4844940vka.122.1524227128153;
        Fri, 20 Apr 2018 05:25:28 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.31.48.81 with SMTP id w78ls5101039vkw.19.gmail; Fri, 20 Apr
 2018 05:25:27 -0700 (PDT)
X-Received: by 10.31.52.139 with SMTP id b133mr1156764vka.10.1524227127140;
        Fri, 20 Apr 2018 05:25:27 -0700 (PDT)
In-Reply-To: <CAFk2RUbmRs7E5wZ6xFKL7ehXc8pn3g9Hj-n8p=FcA1qU-QHeMw@mail.gmail.com>
X-Original-Sender: inkwizytoryankes@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:37895
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/37895>

------=_Part_8494_1913778706.1524227126613
Content-Type: multipart/alternative; 
	boundary="----=_Part_8495_159283060.1524227126613"

------=_Part_8495_159283060.1524227126613
Content-Type: text/plain; charset="UTF-8"



On Friday, April 20, 2018 at 9:44:46 AM UTC+2, Ville Voutilainen wrote:
>
> On 20 April 2018 at 10:40, Mutz, Marc <ma...@kdab.com <javascript:>> 
> wrote: 
> > Hi, 
> > 
> > This is an idea about API migration. Assume you have a public API, and 
> you 
> > discover that you made a typo in an identifier (there are tons of other 
> > reasons to use the mechanisms that I'll show, but let's stay with typo 
> for 
> > the sake of argument). How to fix? 
> > 
> > For functions, we can add a new function and deprecated the old: 
> > 
> >    // v1 
> >    bar make_bra(); 
> > 
> >    // v2 
> >    [[deprecated("use make_bar()")]] bar make_bra() { return make_bar(); 
> } 
> >    bar make_bar(); 
> > 
> > For classes, we can use a typedef: 
> > 
> >    // v1 
> >    class bra { ~~~ }; 
> > 
> >    // v2 
> >    class bar { ~~~ }; 
> >    [[deprecated("use bar")]] using bra = bar; 
> > 
> > For variables, there's no way: 
> > 
> >     // v1 
> >     static inline bar my_bra; // oops! no source migration path :( 
> > 
> > I have two questions: 
> > 
> > 1. Is there anything in the pipeline that would address migrating 
> variable 
> > names? 
> > 2. Assuming there's nothing, what about overloading the using keyword 
> for 
> > this? 
>
>
> See http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0945r0.html 
> We're going to review it in Rapperswil. 
>

I have case:

class F
{
   using ThisType = F;
   ThisType()
   {

   }
   ~ThisType()
   {

   }
};
I will be allowed? Or it still special case that can't be changed?
 

-- 
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/2d519188-69b6-434d-9573-9875a7806f05%40isocpp.org.

------=_Part_8495_159283060.1524227126613
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>On Friday, April 20, 2018 at 9:44:46 AM UTC+2, Vil=
le Voutilainen wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;m=
argin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">On 20 Apr=
il 2018 at 10:40, Mutz, Marc &lt;<a href=3D"javascript:" target=3D"_blank" =
gdf-obfuscated-mailto=3D"ziY2gy7bCwAJ" rel=3D"nofollow" onmousedown=3D"this=
..href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39;jav=
ascript:&#39;;return true;">ma...@kdab.com</a>&gt; wrote:
<br>&gt; Hi,
<br>&gt;
<br>&gt; This is an idea about API migration. Assume you have a public API,=
 and you
<br>&gt; discover that you made a typo in an identifier (there are tons of =
other
<br>&gt; reasons to use the mechanisms that I&#39;ll show, but let&#39;s st=
ay with typo for
<br>&gt; the sake of argument). How to fix?
<br>&gt;
<br>&gt; For functions, we can add a new function and deprecated the old:
<br>&gt;
<br>&gt; =C2=A0 =C2=A0// v1
<br>&gt; =C2=A0 =C2=A0bar make_bra();
<br>&gt;
<br>&gt; =C2=A0 =C2=A0// v2
<br>&gt; =C2=A0 =C2=A0[[deprecated(&quot;use make_bar()&quot;)]] bar make_b=
ra() { return make_bar(); }
<br>&gt; =C2=A0 =C2=A0bar make_bar();
<br>&gt;
<br>&gt; For classes, we can use a typedef:
<br>&gt;
<br>&gt; =C2=A0 =C2=A0// v1
<br>&gt; =C2=A0 =C2=A0class bra { ~~~ };
<br>&gt;
<br>&gt; =C2=A0 =C2=A0// v2
<br>&gt; =C2=A0 =C2=A0class bar { ~~~ };
<br>&gt; =C2=A0 =C2=A0[[deprecated(&quot;use bar&quot;)]] using bra =3D bar=
;
<br>&gt;
<br>&gt; For variables, there&#39;s no way:
<br>&gt;
<br>&gt; =C2=A0 =C2=A0 // v1
<br>&gt; =C2=A0 =C2=A0 static inline bar my_bra; // oops! no source migrati=
on path :(
<br>&gt;
<br>&gt; I have two questions:
<br>&gt;
<br>&gt; 1. Is there anything in the pipeline that would address migrating =
variable
<br>&gt; names?
<br>&gt; 2. Assuming there&#39;s nothing, what about overloading the using =
keyword for
<br>&gt; this?
<br>
<br>
<br>See <a href=3D"http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p094=
5r0.html" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=3D&#3=
9;http://www.google.com/url?q\x3dhttp%3A%2F%2Fopen-std.org%2FJTC1%2FSC22%2F=
WG21%2Fdocs%2Fpapers%2F2018%2Fp0945r0.html\x26sa\x3dD\x26sntz\x3d1\x26usg\x=
3dAFQjCNGKet4Jeq6PeOJkiegK-AXVM3pwKA&#39;;return true;" onclick=3D"this.hre=
f=3D&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fopen-std.org%2FJTC1%2F=
SC22%2FWG21%2Fdocs%2Fpapers%2F2018%2Fp0945r0.html\x26sa\x3dD\x26sntz\x3d1\x=
26usg\x3dAFQjCNGKet4Jeq6PeOJkiegK-AXVM3pwKA&#39;;return true;">http://open-=
std.org/JTC1/SC22/<wbr>WG21/docs/papers/2018/p0945r0.<wbr>html</a>
<br>We&#39;re going to review it in Rapperswil.
<br></blockquote><div><br>I have case:<br><div style=3D"background-color: r=
gb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid; b=
order-width: 1px; overflow-wrap: break-word;" class=3D"prettyprint"><code c=
lass=3D"prettyprint"><div class=3D"subprettyprint"><div style=3D"color: #00=
0000;background-color: #fffffe;font-family: Consolas, "><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"><br></span><div><span style=3D"color=
: #0000ff;"><span style=3D"color: #008;" class=3D"styled-by-prettify">class=
</span></span><span style=3D"color: #000000;"><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> F</span></span></div><div><span style=3D"colo=
r: #000000;"><span style=3D"color: #660;" class=3D"styled-by-prettify">{</s=
pan></span></div><div><span style=3D"color: #000000;"><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"> =C2=A0 =C2=A0</span></span><span styl=
e=3D"color: #0000ff;"><span style=3D"color: #008;" class=3D"styled-by-prett=
ify">using</span></span><span style=3D"color: #000000;"><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #606;"=
 class=3D"styled-by-prettify">ThisType</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> F</span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">;</span></span></div><div><span style=3D"color: #000000;"><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> =C2=A0 =C2=A0</span><span s=
tyle=3D"color: #606;" class=3D"styled-by-prettify">ThisType</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">()</span></span></div><div=
><span style=3D"color: #000000;"><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> =C2=A0 =C2=A0</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">{</span></span></div><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br></span><div><span style=3D"color: #000000;"><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify">=C2=A0 =C2=A0</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">}</span></span></=
div><div><span style=3D"color: #000000;"><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> =C2=A0 =C2=A0</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">~</span><span style=3D"color: #606;" class=3D"s=
tyled-by-prettify">ThisType</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">()</span></span></div><div><span style=3D"color: #000000;"=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> =C2=A0 =C2=A0</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span></sp=
an></div><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></sp=
an><div><span style=3D"color: #000000;"><span style=3D"color: #000;" class=
=3D"styled-by-prettify">=C2=A0 =C2=A0</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">}</span></span></div><div><span style=3D"color: =
#000000;"><span style=3D"color: #660;" class=3D"styled-by-prettify">};</spa=
n></span></div></div></div></code></div>I will be allowed? Or it still spec=
ial case that can&#39;t be changed?<br>=C2=A0<br></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/2d519188-69b6-434d-9573-9875a7806f05%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/2d519188-69b6-434d-9573-9875a7806f05=
%40isocpp.org</a>.<br />

------=_Part_8495_159283060.1524227126613--

------=_Part_8494_1913778706.1524227126613--

.
