220 16845 <54FB2C7B.3080009@wanadoo.fr> article
Path: news.gmane.org!not-for-mail
From: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Newsgroups: gmane.comp.lang.c++.isocpp.general,gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Re: [c++std-core-27227] Re: An implementation of
 enhanced auto deduction and abbreviated template syntax using Clang
Date: Sat, 07 Mar 2015 17:51:07 +0100
Lines: 259
Approved: news@gmane.org
Message-ID: <54FB2C7B.3080009@wanadoo.fr>
References: <CABsSThrwV0UCbrmoxoeQUskOjvF2+RX5ctpSq3dPMPxm=t6mww@mail.gmail.com> <e0666226-5ebe-462b-9803-b70bd11b9491@isocpp.org> <BLUPR03MB455C81E71E81F839F9326C9B81C0@BLUPR03MB455.namprd03.prod.outlook.com> <dfb06a45-bb23-496b-bbf8-c31a3f196b72@isocpp.org> <CAJcCCPNSKOeisxU-WnNaz-RquCL_KPjQO3w3tnyi7pCcS2XQeg@mail.gmail.com> <465969eb-2f8b-41bb-91af-d8a9e22985e7@isocpp.org>,<54F9ED4C.2030108@stroustrup.com> <20150306185818.6508625.910.1394@blackberry.com>
Reply-To: std-discussion@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="------------010009050209080206050501"
X-Trace: ger.gmane.org 1425747080 14947 80.91.229.3 (7 Mar 2015 16:51:20 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Sat, 7 Mar 2015 16:51:20 +0000 (UTC)
Cc: "std-proposals@isocpp.org" <std-proposals@isocpp.org>, 
 "faisalv@gmail.com" <faisalv@gmail.com>,
 "hsutter@microsoft.com" <hsutter@microsoft.com>
To: std-discussion@isocpp.org, Bjarne Stroustrup <c++std-core@accu.org>
Original-X-From: std-discussion+bncBDH67CONY4PBB7OY5STQKGQES24UVQY@isocpp.org Sat Mar 07 17:51:10 2015
Return-path: <std-discussion+bncBDH67CONY4PBB7OY5STQKGQES24UVQY@isocpp.org>
Envelope-to: gclcig-std-discussion@m.gmane.org
Original-Received: from mail-lb0-f199.google.com ([209.85.217.199])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-discussion+bncBDH67CONY4PBB7OY5STQKGQES24UVQY@isocpp.org>)
	id 1YUHwU-0004Ms-99
	for gclcig-std-discussion@m.gmane.org; Sat, 07 Mar 2015 17:51:10 +0100
Original-Received: by lbvn10 with SMTP id n10sf7116154lbv.1
        for <gclcig-std-discussion@m.gmane.org>; Sat, 07 Mar 2015 08:51:09 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
         :cc:subject:references:in-reply-to:content-type: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=gkna4X3bXLcKSh3lOVTk9NhVfX0W10x9hlEo1KcRYwc=;
        b=IuyhdEDIFFGN5uoUTz9deBXhxY1qJCSUk5ELCfcZjYggiZFyzC7F7aAdCgzsePFr1x
         sE136PrZ6pPRtoXQKdy5LJFBxnTSp063w7I4yS/OLlYi5KqS7ts4+RMULA9GohJ3rurY
         xuvZHt2sj4IeZAO0JeSjXsNo1hpO5Qt3Qxd8Zb+QRVxhuJoRQtABwINaCIecolOwHzXV
         jbjx/ntnICLdoDWmVYJulg/E1h4GCMijEkujUrM/dQlEHKNh/v78Fg9s4L44KIkxWK9F
         2+iO8DsyGAVEJudbod0Ih3bk+rgg79K1AIeSDoJax+FSqNy+a4oJxERVPzkswF4bWrmT
         A0Mw==
X-Gm-Message-State: ALoCoQnkhI3JYFjmRaCwURxbVNi713/iSKRXgpbp12uipQA9dBhX9hu62R2q1SVxLpKfawQv/JAO
X-Received: by 10.180.182.201 with SMTP id eg9mr3477995wic.3.1425747069818;
        Sat, 07 Mar 2015 08:51:09 -0800 (PST)
X-BeenThere: std-discussion@isocpp.org
Original-Received: by 10.180.103.71 with SMTP id fu7ls281214wib.29.canary; Sat, 07 Mar
 2015 08:51:08 -0800 (PST)
X-Received: by 10.195.12.167 with SMTP id er7mr41992687wjd.54.1425747068868;
        Sat, 07 Mar 2015 08:51:08 -0800 (PST)
Original-Received: from smtp.smtpout.orange.fr (smtp05.smtpout.orange.fr. [80.12.242.127])
        by mx.google.com with ESMTP id e3si25619736wjs.203.2015.03.07.08.51.08
        for <std-discussion@isocpp.org>;
        Sat, 07 Mar 2015 08:51:08 -0800 (PST)
Received-SPF: none (google.com: vicente.botet@wanadoo.fr does not designate permitted sender hosts) client-ip=80.12.242.127;
Original-Received: from iMac-de-Vicente-Botet-Escriba.local ([2.11.66.123])
	by mwinf5d09 with ME
	id 0gr51q00P2fZjpN03gr6FD; Sat, 07 Mar 2015 17:51:08 +0100
X-ME-Helo: iMac-de-Vicente-Botet-Escriba.local
X-ME-Auth: dmljZW50ZS5ib3RldEB3YW5hZG9vLmZy
X-ME-Date: Sat, 07 Mar 2015 17:51:08 +0100
X-ME-IP: 2.11.66.123
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
In-Reply-To: <20150306185818.6508625.910.1394@blackberry.com>
X-Original-Sender: vicente.botet@wanadoo.fr
X-Original-Authentication-Results: mx.google.com;       spf=none (google.com:
 vicente.botet@wanadoo.fr does not designate permitted sender hosts) smtp.mail=vicente.botet@wanadoo.fr
Precedence: list
Mailing-list: list std-discussion@isocpp.org; contact std-discussion+owners@isocpp.org
List-ID: <std-discussion.isocpp.org>
X-Google-Group-Id: 495566654649
List-Post: <http://groups.google.com/a/isocpp.org/group/std-discussion/post>, <mailto:std-discussion@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-discussion+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-discussion/>
List-Subscribe: <http://groups.google.com/a/isocpp.org/group/std-discussion/subscribe>,
 <mailto:std-discussion+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+495566654649+unsubscribe@googlegroups.com>,
 <http://groups.google.com/a/isocpp.org/group/std-discussion/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.general:5053 gmane.comp.lang.c++.isocpp.proposals:16845
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.general/5053>

This is a multi-part message in MIME format.
--------------010009050209080206050501
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Le 06/03/15 19:58, Tony Van Eerd a =C3=A9crit :
> If all we need is auto, then is the next step:
>
> struct X
> {
>     int x;
>     auto y;
> };
>
> X is obviously a template?
> So is Y:
>
> struct Y
> {
>     int x;
>     ForwardIterator y;
> };
>
> =E2=80=8E?
>
> (Again, I'm not actually against 'auto means template function'=E2=80=8E;=
 I=20
> just bring up counter arguments to be comfortable that we explored the=20
> design space and that we have a path of consistency going forward)
>
>
While for template functions the type is deduced, how could you deduce=20
the type for auto or ForwardIterator. How would you declare an instance=20
of X, or a parameter of type X.

X<???> v;

what if we had

struct X
{
     auto x;
     auto y;
};

X<???, ???> v;

Should the parameters need to be given in the order of declaration of=20
the auto/Concept data members?

I find this confusing.

Vicente

--=20

---=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-discussion+unsubscribe@isocpp.org.
To post to this group, send email to std-discussion@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-discuss=
ion/.

--------------010009050209080206050501
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type=
">
  </head>
  <body text=3D"#000000" bgcolor=3D"#FFFFFF">
    <div class=3D"moz-cite-prefix">Le 06/03/15 19:58, Tony Van Eerd a
      =C3=A9crit=C2=A0:<br>
    </div>
    <blockquote
      cite=3D"mid:20150306185818.6508625.910.1394@blackberry.com"
      type=3D"cite">
      <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf=
-8">
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        If all we need is auto, then is the next step:</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        <br>
      </div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        struct X</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        {</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        =C2=A0 =C2=A0 int x;</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        =C2=A0 =C2=A0 auto y;</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        };</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        <br>
      </div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        X is obviously a template?</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        So is Y:</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        <br>
      </div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        <span style=3D"font-size:initial; text-align:initial;
          line-height:initial">struct Y</span></div>
      <div style=3D"font-size:initial; text-align:initial; width:488px;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125)">
        {</div>
      <div style=3D"font-size:initial; text-align:initial; width:488px;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125)">
        =C2=A0 =C2=A0 int x;</div>
      <div style=3D"font-size:initial; text-align:initial; width:488px;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125)">
        =C2=A0 =C2=A0 ForwardIterator y;</div>
      <div style=3D"font-size:initial; text-align:initial; width:488px;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125)">
        };</div>
      <div style=3D"font-size:initial; text-align:initial; width:488px;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125)">
        <br>
      </div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        =E2=80=8E?</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        <br>
      </div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        (Again, I'm not actually against 'auto means template
        function'=E2=80=8E; I just bring up counter arguments to be comfort=
able
        that we explored the design space and that we have a path of
        consistency going forward)=C2=A0</div>
      <div style=3D"width:100%; font-size:initial;
        font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
        color:rgb(31,73,125); text-align:initial;
        background-color:rgb(255,255,255)">
        <br>
      </div>
      <br>
    </blockquote>
    While for template functions the type is deduced, how could you
    deduce the type for auto or ForwardIterator. How would you declare
    an instance of X, or a parameter of type X.<br>
    <br>
    X&lt;???&gt; v;<br>
    <br>
    what if we had<br>
    <br>
    <div style=3D"width:100%; font-size:initial;
      font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
      color:rgb(31,73,125); text-align:initial;
      background-color:rgb(255,255,255)">
      struct X</div>
    <div style=3D"width:100%; font-size:initial;
      font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
      color:rgb(31,73,125); text-align:initial;
      background-color:rgb(255,255,255)">
      {</div>
    <div style=3D"width:100%; font-size:initial;
      font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
      color:rgb(31,73,125); text-align:initial;
      background-color:rgb(255,255,255)">
      =C2=A0 =C2=A0 auto x;</div>
    <div style=3D"width:100%; font-size:initial;
      font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
      color:rgb(31,73,125); text-align:initial;
      background-color:rgb(255,255,255)">
      =C2=A0 =C2=A0 auto y;</div>
    <div style=3D"width:100%; font-size:initial;
      font-family:Calibri,'Slate Pro',sans-serif,sans-serif;
      color:rgb(31,73,125); text-align:initial;
      background-color:rgb(255,255,255)">
      };</div>
    <br>
    X&lt;???, ???&gt; v;<br>
    <br>
    Should the parameters need to be given in the order of declaration
    of the auto/Concept data members?<br>
    <br>
    I find this confusing.<br>
    <br>
    Vicente<br>
  </body>
</html>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Discussion&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-discussion+unsubscribe@isocpp.org">std-discus=
sion+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-discussion@isocp=
p.org">std-discussion@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-discussion/">http://groups.google.com/a/isocpp.org/group/std-discussion=
/</a>.<br />

--------------010009050209080206050501--

.
