220 33215 <CAEwx-OsVLrYQkGxLBmwoGvvCSRYPofihR6Xa9R1P-F3aEa1ucw@mail.gmail.com> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Nicole Mazzuca <npmazzuca@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Idea for a proposal
Date: Sat, 15 Jul 2017 13:03:07 -0700
Lines: 294
Approved: news@gmane.org
Message-ID: <CAEwx-OsVLrYQkGxLBmwoGvvCSRYPofihR6Xa9R1P-F3aEa1ucw@mail.gmail.com>
References: <CAEwx-OtH36J13PDD1H_8i0P4=NUYktFdJq7eZFyFKuwMi-WM5Q@mail.gmail.com>
 <915caa4a-875c-2540-6941-fbe019aa2b47@gmail.com> <15d714d7-4454-4022-87f0-808a60619f05@isocpp.org>
 <65ad7b18-0aa5-49a8-bd19-1887cc8b7649@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="001a114274ba8a8a25055460a7de"
X-Trace: blaine.gmane.org 1500148996 20754 195.159.176.226 (15 Jul 2017 20:03:16 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Sat, 15 Jul 2017 20:03:16 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBD4ITEVL7ABBB7HJVHFQKGQEZPEHO7Q@isocpp.org Sat Jul 15 22:03:12 2017
Return-path: <std-proposals+bncBD4ITEVL7ABBB7HJVHFQKGQEZPEHO7Q@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-yb0-f198.google.com ([209.85.213.198])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBD4ITEVL7ABBB7HJVHFQKGQEZPEHO7Q@isocpp.org>)
	id 1dWTHN-0004mX-4L
	for gclcip-std-proposals@m.gmane.org; Sat, 15 Jul 2017 22:03:05 +0200
Original-Received: by mail-yb0-f198.google.com with SMTP id w187sf115913992ybc.6
        for <gclcip-std-proposals@m.gmane.org>; Sat, 15 Jul 2017 13:03:10 -0700 (PDT)
ARC-Seal: i=2; a=rsa-sha256; t=1500148990; cv=pass;
        d=google.com; s=arc-20160816;
        b=muurlQFo8EAxt21R6DKtnb6z/XmEcHAVU0oySMGAlQQ8KE72/31Iwvxvv45WOwPhVc
         K93veivNNW9Oeuuamsr7wFamiOO3y+tEFgv6fojrRjqP0eogk3LRjEN0H2kA6U4ITVvF
         dZRu4dK+zn+DLPdN5/WKfWeJBLmfjVwzzS6q/HKT15/v/37c2Pi6d3JSlC3uVJj01CTB
         yG1SfDspr31dTf+/TG8KrXoxQwdHtY7pjGOCXVtMKi7NaXxyVGjZvGPjTqPmQB5bLr0O
         lW4u+0qgwUdLL2q+KYDn3TOFyI5sh0cMe9o8uvI9We7BcmrVJOrzJYhMA2xXWlRJlsdB
         qjuw==
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:to:subject:message-id:date
         :from:references:in-reply-to:mime-version:arc-authentication-results
         :arc-message-signature:dkim-signature:arc-authentication-results;
        bh=kvW7/su6ceWdwLFa8g1BTq1Y2P8KiMXbaWUZVFXmsuA=;
        b=mbBPaU5ScwEC/TaqLJc0WsQRvnykAe6SIjbC54Xvn3BTsEPwmmbjJO16pAXaWwYuBA
         fvjW9QeyFnqX518uWwl9T6ZjnAMKsIaUylNnP8U9hTun5BhIuOIK/+DZlzN1Tm9pkOFg
         yKQVtcRb4ADtw25Mg2z1AplE6cCfW3+YiJfPNqZpWwDarI/FaOpH0OnmDfwX0FZOJ7T3
         UXVqmvASGlSNMRhsyQDiDIwlsOGzWn9D82UzJq/vfoIfe8WBVCcUPUt7Oy2RO3/ZyhPs
         RQne7VwEasLDlcnO7DduwJ8t+L306XWaImPJElYnlNUsa9XDX631CBw4PAYoITF7M7P8
         Hbmw==
ARC-Authentication-Results: i=2; mx.google.com;
       dkim=pass header.i=@gmail.com header.b=OMG2jRBX;
       spf=pass (google.com: domain of npmazzuca@gmail.com designates 2607:f8b0:4001:c0b::234 as permitted sender) smtp.mailfrom=npmazzuca@gmail.com;
       dmarc=pass (p=NONE sp=NONE 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:in-reply-to:references:from:date:message-id:subject:to
         :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=kvW7/su6ceWdwLFa8g1BTq1Y2P8KiMXbaWUZVFXmsuA=;
        b=G/tZzado9rLH9cpVQWjPeDGIl5x5qbAjT1BUbmUFeg+eR2XXsIJCDKCHpKygYK9+L6
         SDZJcas8SiqwBzM0IGULo03PKhsjfgw2v9h5BxR2QvjrpqXpVpz7OARpoB3ZMhL7eHt4
         VZX4CMI/Me8mGP6ZBs1GE9UX+GoitH3Dz1MLXIJtNmawzum2jLAKbSA8GK32DOhpwopg
         LNQWsd1PMpyCfP5F2TsyQ8nip466V7QcC3llTnMYqtiiCTb6Tyfa1WV5/+N4BOIGGH4g
         LJb1mSPcFcqmVGlSFZ/6FmqqiWfhpOgVl3AyjUvMXrVALfAd/ecnyvsd86IeV5TLGU1f
         cpDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:in-reply-to:references:from:date
         :message-id:subject:to: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=kvW7/su6ceWdwLFa8g1BTq1Y2P8KiMXbaWUZVFXmsuA=;
        b=jXFlV28OmZvcIYCOZXPhz9AibsW3HiS5kBvU9Hx8ZOFmUpe8GbTuhtXURXueBg+rP2
         KwDs0/ED0HWGA0P8PCZCEqL3JlOFqdFP6NWoffjBV8B8G3qVcK3EE72I267ssf6XeSIA
         xwNjsqBULGjNqespCBkqKSo+4/X88kfU63whQr4jsn4wVPWUB/xMOJ33Kg+OaYug+3sI
         R6/4cRWwAWjugZaYMMhPkkzLQ1bVFvoS0orDM4m+3y27khHy/fYclj9pggS/qcCMRV//
         5H2hFJHwZnWQpxoOQeF0z+GEQa0wJ8s94USB8GL3QWZi5ExCmbbdxXeNxuEzNIXYuClo
         msCQ==
X-Gm-Message-State: AIVw1111gAjFsfDi5BFe8SOlSYbS6qX55tfeCFeIcPYLEPFhSUClpTjo
	5coIixkAFqdyKb8J
X-Received: by 10.129.122.86 with SMTP id v83mr9869845ywc.2.1500148990179;
        Sat, 15 Jul 2017 13:03:10 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.107.17.89 with SMTP id z86ls1345111ioi.7.gmail; Sat, 15 Jul
 2017 13:03:08 -0700 (PDT)
X-Received: by 10.36.50.13 with SMTP id j13mr186620ita.126.1500148988724;
        Sat, 15 Jul 2017 13:03:08 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1500148988; cv=none;
        d=google.com; s=arc-20160816;
        b=aawNkz8rdVNXJIGmx2aH58sRa/dgg+1/74oEjqmt9QQ8XVLq9J+lcChYxgFYpXcEKA
         /7GgCkhmR6uxhfmxGvYbPCfX0/jH6CV4b40Bu5K3rcwDCcpa502y2kSi6t6afqg8crpT
         clio4H2HY2WKxIEXfK3rS6Y135qk1fEXr/LaoQnnkjR1r5GUZE4l3ZxKfouBEYV1SbPm
         aJ2DFTpT9QkQTaPLMelS6DYbGlLfdfhFcAEuKvyi9RHJn99D4xzuKOYqVsY7KUWimK4C
         lYAx5tCmfJ0QbyuGiQ8OIR0XyUYbMw76UGydSA6QpjqcNcU83Tk6QyRFwDJheJm6YbvO
         MxBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=to:subject:message-id:date:from:references:in-reply-to:mime-version
         :dkim-signature:arc-authentication-results;
        bh=M3j1Ntu/TTVpVko1+DzSZOF7iqpk6I4YyXxvrqd2HiQ=;
        b=PnhkZhti12Thb6qS1nLXWusEEVQbXVt6WcSTSILY4nF+Gry4FHznGLp8ryMw2jw815
         fMNOfZZh0mjcPXN+qDT3CPU9FepJurfdP3HFqTU09xFbS238i94Q1clqO1xbfbu2kEED
         6R6JxdIveZf3NKRxiCQUW+68U7DxAYTH8PRVxCI2gAwmoE1NoCN1gGQ9J5Nn4yNakMLw
         BBAzvcEZjqyPZptZ55TR/P3SJGedxXINY1dRpsS3rnlE5kOFhlt4/qEQ+3cUlpUcg1qo
         xFqtrQgADZmacjBj+0idMfJvhWT/x7Jyjl+ckZKMi7z7veVxLZfY1yEGgIW88wGw6+CY
         Uh6Q==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=@gmail.com header.b=OMG2jRBX;
       spf=pass (google.com: domain of npmazzuca@gmail.com designates 2607:f8b0:4001:c0b::234 as permitted sender) smtp.mailfrom=npmazzuca@gmail.com;
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com
Original-Received: from mail-it0-x234.google.com (mail-it0-x234.google.com. [2607:f8b0:4001:c0b::234])
        by mx.google.com with ESMTPS id a6si5767147ita.54.2017.07.15.13.03.08
        for <std-proposals@isocpp.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sat, 15 Jul 2017 13:03:08 -0700 (PDT)
Received-SPF: pass (google.com: domain of npmazzuca@gmail.com designates 2607:f8b0:4001:c0b::234 as permitted sender) client-ip=2607:f8b0:4001:c0b::234;
Original-Received: by mail-it0-x234.google.com with SMTP id h199so4460685ith.1
        for <std-proposals@isocpp.org>; Sat, 15 Jul 2017 13:03:08 -0700 (PDT)
X-Received: by 10.36.7.202 with SMTP id f193mr183815itf.80.1500148988019; Sat,
 15 Jul 2017 13:03:08 -0700 (PDT)
Original-Received: by 10.107.52.16 with HTTP; Sat, 15 Jul 2017 13:03:07 -0700 (PDT)
Original-Received: by 10.107.52.16 with HTTP; Sat, 15 Jul 2017 13:03:07 -0700 (PDT)
In-Reply-To: <65ad7b18-0aa5-49a8-bd19-1887cc8b7649@isocpp.org>
X-Original-Sender: npmazzuca@gmail.com
X-Original-Authentication-Results: mx.google.com;       dkim=pass
 header.i=@gmail.com header.b=OMG2jRBX;       spf=pass (google.com: domain of
 npmazzuca@gmail.com designates 2607:f8b0:4001:c0b::234 as permitted sender)
 smtp.mailfrom=npmazzuca@gmail.com;       dmarc=pass (p=NONE sp=NONE 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-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:33215
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/33215>

--001a114274ba8a8a25055460a7de
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hmm, that makes the current semantics even more strange to me. It's at
least, imo, not very clear. However, if those are the correct semantics, I
guess this is resolved.

On Jul 12, 2017 14:36, "Barry Revzin" <barry.revzin@gmail.com> wrote:


> What it means right now is:
>
> Concept foo();
>
> becomes
>
> template<typename T> requires Concept<T> T foo();
>
>
I don't think that's true? The wording in N4674 is

A constrained-type-specifier C1 within the declared return type of an
> abbreviated function template declaration does not designate a placeholde=
r
> if its introduced constraint-expression (10.1.7.4.2) is determined to be
> equivalent, using the rules in 17.6.5.1 for comparing expressions, to the
> introduced constraint-expression for a constrained-type-specifier C2 in t=
he
> parameter-declaration-clause of that function declaration. Instead, C1 is
> replaced by the template parameter invented for C2 (11.3.5).


Since Concept isn't used anywhere else, then it still counts as a
placeholder. So:

Concept foo(Concept ); // <=3D=3D> template <class T> requires Concept<T>
                       //      T foo(T );

Concept foo();         // <=3D=3D> auto foo();
                       //      static_assert(Concept<decltype(foo())>);

There's also examples like:

template <typename T> concept bool C =3D true;
template <typename T> concept bool D =3D false;
C z1 =3D 0; // OK: z1 has type int
D z2 =3D 0; // error: constraints not satisfied
C cf1() { return 0.0; }; // OK: cf1 returns double
D cf2() { return 0.0; }; // error: constraints not satisfied
auto cf3() -> C; // OK: cf3=E2=80=99s return type will be deduced when it i=
s defined


--=20
You received this message because you are subscribed to a topic in the
Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this topic, visit https://groups.google.com/a/
isocpp.org/d/topic/std-proposals/lzIEK6_-J84/unsubscribe.
To unsubscribe from this group and all its topics, 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/65ad7b18-0aa5-49a8-
bd19-1887cc8b7649%40isocpp.org
<https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/65ad7b18-0aa5=
-49a8-bd19-1887cc8b7649%40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter=
>
..

--=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/CAEwx-OsVLrYQkGxLBmwoGvvCSRYPofihR6Xa9R1P-F3aEa1=
ucw%40mail.gmail.com.

--001a114274ba8a8a25055460a7de
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Hmm, that makes the current semantics even more strange t=
o me. It&#39;s at least, imo, not very clear. However, if those are the cor=
rect semantics, I guess this is resolved.</div><div class=3D"gmail_extra"><=
br><div class=3D"gmail_quote">On Jul 12, 2017 14:36, &quot;Barry Revzin&quo=
t; &lt;<a href=3D"mailto:barry.revzin@gmail.com">barry.revzin@gmail.com</a>=
&gt; wrote:<br type=3D"attribution"><blockquote class=3D"quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"lt=
r"><div class=3D"quoted-text"><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div =
dir=3D"ltr"><div><br>What it means right now is:<br><br><div style=3D"backg=
round-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:sol=
id;border-width:1px"><code><div><span style=3D"color:#606">Concept</span><s=
pan style=3D"color:#000"> foo</span><span style=3D"color:#660">();</span><s=
pan style=3D"color:#000"><br><br>becomes<br><br></span><span style=3D"color=
:#008">template</span><span style=3D"color:#660">&lt;</span><span style=3D"=
color:#008">typename</span><span style=3D"color:#000"> T</span><span style=
=3D"color:#660">&gt;</span><span style=3D"color:#000"> requires </span><spa=
n style=3D"color:#606">Concept</span><span style=3D"color:#660">&lt;</span>=
<span style=3D"color:#000">T</span><span style=3D"color:#660">&gt;</span><s=
pan style=3D"color:#000"> T foo</span><span style=3D"color:#660">();</span>=
</div></code></div><br></div></div></blockquote><div><br></div></div><div>I=
 don&#39;t think that&#39;s true? The wording in N4674 is=C2=A0</div><div><=
br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">A constrained-ty=
pe-specifier C1 within the declared return type of an abbreviated function =
template
declaration does not designate a placeholder if its introduced constraint-e=
xpression (10.1.7.4.2)
is determined to be equivalent, using the rules in 17.6.5.1 for comparing e=
xpressions, to the introduced
constraint-expression for a constrained-type-specifier C2 in the parameter-=
declaration-clause
of that function declaration. Instead, C1 is replaced by the template param=
eter invented for C2
(11.3.5).</blockquote><div><br></div><div>Since Concept isn&#39;t used anyw=
here else, then it still counts as a placeholder. So:</div><div><br></div><=
div><div class=3D"m_6689280322255370458prettyprint" style=3D"background-col=
or:rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border=
-width:1px;word-wrap:break-word"><code class=3D"m_6689280322255370458pretty=
print"><div class=3D"m_6689280322255370458subprettyprint"><span style=3D"co=
lor:#606" class=3D"m_6689280322255370458styled-by-prettify">Concept</span><=
span style=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"=
> foo</span><span style=3D"color:#660" class=3D"m_6689280322255370458styled=
-by-prettify">(</span><span style=3D"color:#606" class=3D"m_668928032225537=
0458styled-by-prettify">Concept</span><span style=3D"color:#000" class=3D"m=
_6689280322255370458styled-by-prettify"> </span><span style=3D"color:#660" =
class=3D"m_6689280322255370458styled-by-prettify">);</span><font color=3D"#=
880000"><span style=3D"color:#000" class=3D"m_6689280322255370458styled-by-=
prettify"> </span><span style=3D"color:#800" class=3D"m_6689280322255370458=
styled-by-prettify">// &lt;=3D=3D&gt; template &lt;class T&gt; requires Con=
cept&lt;T&gt; </span><span style=3D"color:#000" class=3D"m_6689280322255370=
458styled-by-prettify"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0</span><span style=3D"color:#800" class=
=3D"m_6689280322255370458styled-by-prettify">// =C2=A0 =C2=A0 =C2=A0T foo(T=
 );</span><span style=3D"color:#000" class=3D"m_6689280322255370458styled-b=
y-prettify"><br><br></span><span style=3D"color:#606" class=3D"m_6689280322=
255370458styled-by-prettify">Concept</span><span style=3D"color:#000" class=
=3D"m_6689280322255370458styled-by-prettify"> foo</span><span style=3D"colo=
r:#660" class=3D"m_6689280322255370458styled-by-prettify">();</span><span s=
tyle=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"> =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 </span><span style=3D"color:#800" class=3D"m_66892=
80322255370458styled-by-prettify">// &lt;=3D=3D&gt; auto foo(); </span><spa=
n style=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"><b=
r>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0</span><span style=3D"color:#800" class=3D"m_6689280322255370458s=
tyled-by-prettify">// =C2=A0 =C2=A0 =C2=A0static_assert(Concept&lt;<wbr>dec=
ltype(foo())&gt;);</span></font></div></code></div><br>There&#39;s also exa=
mples like:</div><div><br></div><div><div class=3D"m_6689280322255370458pre=
ttyprint" style=3D"background-color:rgb(250,250,250);border-color:rgb(187,1=
87,187);border-style:solid;border-width:1px;word-wrap:break-word"><code cla=
ss=3D"m_6689280322255370458prettyprint"><div class=3D"m_6689280322255370458=
subprettyprint"><span style=3D"color:#008" class=3D"m_6689280322255370458st=
yled-by-prettify">template</span><u></u><span style=3D"color:#000" class=3D=
"m_6689280322255370458styled-by-prettify"> </span><span style=3D"color:#660=
" class=3D"m_6689280322255370458styled-by-prettify">&lt;</span><span style=
=3D"color:#008" class=3D"m_6689280322255370458styled-by-prettify">typename<=
/span><span style=3D"color:#000" class=3D"m_6689280322255370458styled-by-pr=
ettify"> T</span><span style=3D"color:#660" class=3D"m_6689280322255370458s=
tyled-by-prettify">&gt;</span><span style=3D"color:#000" class=3D"m_6689280=
322255370458styled-by-prettify"> </span><span style=3D"color:#008" class=3D=
"m_6689280322255370458styled-by-prettify">concept</span><span style=3D"colo=
r:#000" class=3D"m_6689280322255370458styled-by-prettify"> </span><span sty=
le=3D"color:#008" class=3D"m_6689280322255370458styled-by-prettify">bool</s=
pan><span style=3D"color:#000" class=3D"m_6689280322255370458styled-by-pret=
tify"> C </span><span style=3D"color:#660" class=3D"m_6689280322255370458st=
yled-by-prettify">=3D</span><span style=3D"color:#000" class=3D"m_668928032=
2255370458styled-by-prettify"> </span><span style=3D"color:#008" class=3D"m=
_6689280322255370458styled-by-prettify">true</span><span style=3D"color:#66=
0" class=3D"m_6689280322255370458styled-by-prettify">;</span><span style=3D=
"color:#000" class=3D"m_6689280322255370458styled-by-prettify"><br></span><=
span style=3D"color:#008" class=3D"m_6689280322255370458styled-by-prettify"=
>template</span><u></u><span style=3D"color:#000" class=3D"m_66892803222553=
70458styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_6689=
280322255370458styled-by-prettify">&lt;</span><span style=3D"color:#008" cl=
ass=3D"m_6689280322255370458styled-by-prettify">typename</span><span style=
=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"> T</span>=
<span style=3D"color:#660" class=3D"m_6689280322255370458styled-by-prettify=
">&gt;</span><span style=3D"color:#000" class=3D"m_6689280322255370458style=
d-by-prettify"> </span><span style=3D"color:#008" class=3D"m_66892803222553=
70458styled-by-prettify">concept</span><span style=3D"color:#000" class=3D"=
m_6689280322255370458styled-by-prettify"> </span><span style=3D"color:#008"=
 class=3D"m_6689280322255370458styled-by-prettify">bool</span><span style=
=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"> D </span=
><span style=3D"color:#660" class=3D"m_6689280322255370458styled-by-prettif=
y">=3D</span><span style=3D"color:#000" class=3D"m_6689280322255370458style=
d-by-prettify"> </span><span style=3D"color:#008" class=3D"m_66892803222553=
70458styled-by-prettify">false</span><span style=3D"color:#660" class=3D"m_=
6689280322255370458styled-by-prettify">;</span><span style=3D"color:#000" c=
lass=3D"m_6689280322255370458styled-by-prettify"><br>C z1 </span><span styl=
e=3D"color:#660" class=3D"m_6689280322255370458styled-by-prettify">=3D</spa=
n><span style=3D"color:#000" class=3D"m_6689280322255370458styled-by-pretti=
fy"> </span><span style=3D"color:#066" class=3D"m_6689280322255370458styled=
-by-prettify">0</span><span style=3D"color:#660" class=3D"m_668928032225537=
0458styled-by-prettify">;</span><span style=3D"color:#000" class=3D"m_66892=
80322255370458styled-by-prettify"> </span><span style=3D"color:#800" class=
=3D"m_6689280322255370458styled-by-prettify">// OK: z1 has type int</span><=
span style=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"=
><br>D z2 </span><span style=3D"color:#660" class=3D"m_6689280322255370458s=
tyled-by-prettify">=3D</span><span style=3D"color:#000" class=3D"m_66892803=
22255370458styled-by-prettify"> </span><span style=3D"color:#066" class=3D"=
m_6689280322255370458styled-by-prettify">0</span><span style=3D"color:#660"=
 class=3D"m_6689280322255370458styled-by-prettify">;</span><span style=3D"c=
olor:#000" class=3D"m_6689280322255370458styled-by-prettify"> </span><span =
style=3D"color:#800" class=3D"m_6689280322255370458styled-by-prettify">// e=
rror: constraints not satisfied</span><span style=3D"color:#000" class=3D"m=
_6689280322255370458styled-by-prettify"><br>C cf1</span><span style=3D"colo=
r:#660" class=3D"m_6689280322255370458styled-by-prettify">()</span><span st=
yle=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"> </spa=
n><span style=3D"color:#660" class=3D"m_6689280322255370458styled-by-pretti=
fy">{</span><span style=3D"color:#000" class=3D"m_6689280322255370458styled=
-by-prettify"> </span><span style=3D"color:#008" class=3D"m_668928032225537=
0458styled-by-prettify">return</span><span style=3D"color:#000" class=3D"m_=
6689280322255370458styled-by-prettify"> </span><span style=3D"color:#066" c=
lass=3D"m_6689280322255370458styled-by-prettify">0.0</span><span style=3D"c=
olor:#660" class=3D"m_6689280322255370458styled-by-prettify">;</span><span =
style=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"> </s=
pan><span style=3D"color:#660" class=3D"m_6689280322255370458styled-by-pret=
tify">};</span><span style=3D"color:#000" class=3D"m_6689280322255370458sty=
led-by-prettify"> </span><span style=3D"color:#800" class=3D"m_668928032225=
5370458styled-by-prettify">// OK: cf1 returns double</span><span style=3D"c=
olor:#000" class=3D"m_6689280322255370458styled-by-prettify"><br>D cf2</spa=
n><span style=3D"color:#660" class=3D"m_6689280322255370458styled-by-pretti=
fy">()</span><span style=3D"color:#000" class=3D"m_6689280322255370458style=
d-by-prettify"> </span><span style=3D"color:#660" class=3D"m_66892803222553=
70458styled-by-prettify">{</span><span style=3D"color:#000" class=3D"m_6689=
280322255370458styled-by-prettify"> </span><span style=3D"color:#008" class=
=3D"m_6689280322255370458styled-by-prettify">return</span><span style=3D"co=
lor:#000" class=3D"m_6689280322255370458styled-by-prettify"> </span><span s=
tyle=3D"color:#066" class=3D"m_6689280322255370458styled-by-prettify">0.0</=
span><span style=3D"color:#660" class=3D"m_6689280322255370458styled-by-pre=
ttify">;</span><span style=3D"color:#000" class=3D"m_6689280322255370458sty=
led-by-prettify"> </span><span style=3D"color:#660" class=3D"m_668928032225=
5370458styled-by-prettify">};</span><span style=3D"color:#000" class=3D"m_6=
689280322255370458styled-by-prettify"> </span><span style=3D"color:#800" cl=
ass=3D"m_6689280322255370458styled-by-prettify">// error: constraints not s=
atisfied</span><span style=3D"color:#000" class=3D"m_6689280322255370458sty=
led-by-prettify"><br></span><span style=3D"color:#008" class=3D"m_668928032=
2255370458styled-by-prettify">auto</span><span style=3D"color:#000" class=
=3D"m_6689280322255370458styled-by-prettify"> cf3</span><span style=3D"colo=
r:#660" class=3D"m_6689280322255370458styled-by-prettify">()</span><span st=
yle=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"> </spa=
n><span style=3D"color:#660" class=3D"m_6689280322255370458styled-by-pretti=
fy">-&gt;</span><span style=3D"color:#000" class=3D"m_6689280322255370458st=
yled-by-prettify"> C</span><span style=3D"color:#660" class=3D"m_6689280322=
255370458styled-by-prettify">;</span><span style=3D"color:#000" class=3D"m_=
6689280322255370458styled-by-prettify"> </span><span style=3D"color:#800" c=
lass=3D"m_6689280322255370458styled-by-prettify">// OK: cf3=E2=80=99s retur=
n type will be deduced when it is defined</span><u></u><u></u><span style=
=3D"color:#000" class=3D"m_6689280322255370458styled-by-prettify"><br></spa=
n></div></code></div><br><br></div></div><div class=3D"quoted-text">

<p></p>

-- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/lzIEK6_-J84/unsubscribe" target=3D"_blan=
k">https://groups.google.com/a/<wbr>isocpp.org/d/topic/std-<wbr>proposals/l=
zIEK6_-J84/<wbr>unsubscribe</a>.<br>
To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_blank">std-prop=
osals+unsubscribe@<wbr>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></div>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/65ad7b18-0aa5-49a8-bd19-1887cc8b7649%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/65ad=
7b18-0aa5-49a8-<wbr>bd19-1887cc8b7649%40isocpp.org</a><wbr>.<br>
</blockquote></div><br></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/CAEwx-OsVLrYQkGxLBmwoGvvCSRYPofihR6Xa=
9R1P-F3aEa1ucw%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAEwx-OsVLrYQkGxL=
BmwoGvvCSRYPofihR6Xa9R1P-F3aEa1ucw%40mail.gmail.com</a>.<br />

--001a114274ba8a8a25055460a7de--

.
