220 34173 <481b4d44-74e0-4cd3-8141-62d35dea8350@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: "T. C." <rs2740@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Structured bindings with polymorphic lambdas
Date: Mon, 28 Aug 2017 01:38:04 -0700 (PDT)
Lines: 242
Approved: news@gmane.org
Message-ID: <481b4d44-74e0-4cd3-8141-62d35dea8350@isocpp.org>
References: <b8d14aa1-adcb-41d9-8fe8-d70805927161@isocpp.org>
 <8497b31b-7c9d-4334-ac22-0809c958cb93@isocpp.org>
 <15a70d94-e039-4f82-ba01-bde9d3fbacbd@isocpp.org>
 <6b50933d-291b-4b47-8c0c-82c97d9cb406@isocpp.org>
 <348b59eb-c288-482e-a7f4-473d8f1fbfea@isocpp.org>
 <029d244a-cc53-40de-9c2f-59b1bc776c1b@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_6283_1253384204.1503909484358"
X-Trace: blaine.gmane.org 1503909492 28287 195.159.176.226 (28 Aug 2017 08:38:12 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Mon, 28 Aug 2017 08:38:12 +0000 (UTC)
Cc: rmn100@gmail.com
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCQ43G7NQIIRB3NMR7GQKGQEEDGEXDA@isocpp.org Mon Aug 28 10:38:07 2017
Return-path: <std-proposals+bncBCQ43G7NQIIRB3NMR7GQKGQEEDGEXDA@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-pf0-f197.google.com ([209.85.192.197])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBCQ43G7NQIIRB3NMR7GQKGQEEDGEXDA@isocpp.org>)
	id 1dmFYW-0006kC-2V
	for gclcip-std-proposals@m.gmane.org; Mon, 28 Aug 2017 10:38:00 +0200
Original-Received: by mail-pf0-f197.google.com with SMTP id 85sf31719425pfo.14
        for <gclcip-std-proposals@m.gmane.org>; Mon, 28 Aug 2017 01:38:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to:cc: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=qwHIgipwDJOMlPFoMVPqs4FbAqrq67bfXvz/KhVXTb4=;
        b=XDtmeA/RMyVF6cBdk9byFud5zDERGMDMxy4Opr9WSS673hmYqui9MFDFHm+V/st1yK
         6OlFWfjg2sqNfF+DSaBvHv+oyC8D0/haddlSJbb8+/Dt+I0mhd4HLO0SWpQTK5xX7gOS
         TOPIPQg40u9HtqFVHoYBeV7ZgxN0eVOuYMic7ROpJCsXreFpGCKHS+NcCPSmtdW/mhqH
         8UxmsZXxZlB3wL/x236fXhxdgDn8QL5o5ZhPW3ITXuCqBPfYLXmxEU46o9sQWkkPml3n
         d7EWq8ieVvd4v2nY6mp4DbtsiWpXJgnI/dXkYJ/bqhSSsaMYeL/2I5beWWsGQviGBG1d
         /Tog==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to:cc: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=qwHIgipwDJOMlPFoMVPqs4FbAqrq67bfXvz/KhVXTb4=;
        b=VA1c32jfpdCHVS3HNcolz7GogUGGFkSGW1c3IO/H0pmgbUz29NVBVLcjJYeUh3qppW
         sj8gXS24ZA0DiH+pgosZHjBSoFxzMCc0fAvu15dZh5SDg77y/ERG8dmXsBnwTUwlWYVk
         OdFEI80Q5Smw6SrCJ6QrWtQAkxnpoP5H5VyZhHqTVWXs3VOQOCtqeF0uNwBAAIRkcrzu
         yeasrcYj2uXzOjh1F6/YL2EhOqQ/z91FXPCRAu4AIftWS6ML7+Ar3p74A9CgKOLuy7gp
         yjbqaOVHQ5Qj0Mvh5i+8h6D4bwCayGYCALOUuB3Lc/7y5o8L0DIlHkkigZfG2TtSGvZ9
         pNtQ==
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:cc: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=qwHIgipwDJOMlPFoMVPqs4FbAqrq67bfXvz/KhVXTb4=;
        b=iOGQwp3nsAbU6/lJgZNZ3RCSn8s63SZFDUwK+N8u/7ryEzRPGV348avpwyF36v+cJC
         t04GUxUnQgzr8ioezqQyjBUi1c+GIVMnTyJ9M97ZgBW5povoRxgHmoo/3zFrqWT6GpbM
         IeWPDKakjeuUpdfblUAZQ5zH8p1Ih02zr9BSTXjRnh9O40cGmca9AIuvfzy4qANCXXbv
         0XLZ6TbL7yn3ehz/Fh2gFPSGxnp5Lr/sXMVJLxZxGbOg/PpxcmVZEGLxkz0FKYQTXdl8
         jKpOLU2Qw+f7kGSDbBF9DrjzXBrzPqWx9LHijmcSbaHsoF7ypX7IildlIAXs+YbIr9H/
         aUaQ==
X-Gm-Message-State: AHYfb5jlBYalknk8EimGn9GsdOrl9D8ZPPqDNycKdx+3EVYyMDUKzx2M
	yn+7bxWXLLPpVfaq
X-Received: by 10.98.101.199 with SMTP id z190mr4311205pfb.48.1503909486308;
        Mon, 28 Aug 2017 01:38:06 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.107.129.98 with SMTP id c95ls3226151iod.32.gmail; Mon, 28 Aug
 2017 01:38:05 -0700 (PDT)
X-Received: by 10.31.58.216 with SMTP id h207mr32542vka.16.1503909484936;
        Mon, 28 Aug 2017 01:38:04 -0700 (PDT)
In-Reply-To: <029d244a-cc53-40de-9c2f-59b1bc776c1b@isocpp.org>
X-Original-Sender: rs2740@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:34173
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/34173>

------=_Part_6283_1253384204.1503909484358
Content-Type: multipart/alternative; 
	boundary="----=_Part_6284_2019659389.1503909484359"

------=_Part_6284_2019659389.1503909484359
Content-Type: text/plain; charset="UTF-8"

You don't have to have multiple translation units to run into ODR problems. 
Consider (the idea was first pointed out to me by Casey Carter a while 
ago): 

struct X { int a; };

template<> struct std::tuple_size<X>;
template<size_t I> struct std::tuple_element<I, X> { using type = int; };
template<size_t I> int get(X) { return 1; }


auto [a] = X(); // is_decomposable<1, X>::value == true ; 
is_decomposable<3, X>::value == false ?


template<> struct std::tuple_size<X> : std::integral_constant<size_t, 3> {};
auto [b, c, d] = X();

// auto [e] = X(); // error now
// is_decomposable<1, X>::value == ?


Also, to illustrate my question about extent of the check, what should the 
following code do? (This is basically GB 20's motivating example.)
struct Y {};
template<> struct std::tuple_size<Y> { const int value = 2; /* note missing 
"static" */ };
// tuple_element/get omitted

static_assert(is_decomposable<2, Y>::value);

1) fire the static assert
2) somehow not fire the static assert
3) cause a hard error
4) something else

-- 
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/481b4d44-74e0-4cd3-8141-62d35dea8350%40isocpp.org.

------=_Part_6284_2019659389.1503909484359
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>You don&#39;t have to have multiple translation units=
 to run into ODR problems. Consider (the idea was first pointed out to me b=
y Casey Carter a while ago):=C2=A0<br></div><div><br></div><div class=3D"pr=
ettyprint" style=3D"background-color: rgb(250, 250, 250); border-color: rgb=
(187, 187, 187); border-style: solid; border-width: 1px; word-wrap: break-w=
ord;"><code class=3D"prettyprint"><div class=3D"subprettyprint"><span style=
=3D"color: #008;" class=3D"styled-by-prettify">struct</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"> X </span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">{</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">int</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> a</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">};</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"><br><br></span><span st=
yle=3D"color: #008;" class=3D"styled-by-prettify">template</span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">&lt;&gt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #008;" class=3D"styled-by-prettify">struct</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">::</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify">tuple_size</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">&lt;</span><span style=3D"color: #000;" class=3D"styled=
-by-prettify">X</span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">&gt;;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
<br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">templa=
te</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify">size_t I</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span=
 style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D=
"color: #008;" class=3D"styled-by-prettify">struct</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">::</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify">tuple_element</span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">&lt;</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">I</span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> X</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&g=
t;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">{</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"col=
or: #008;" class=3D"styled-by-prettify">using</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> type </span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=3D"style=
d-by-prettify">int</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">};</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span s=
tyle=3D"color: #008;" class=3D"styled-by-prettify">template</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">&lt;</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify">size_t I</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" cla=
ss=3D"styled-by-prettify">int</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">get</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">(</span><span style=3D"color: #000;" class=3D"styled-by-prettify">X</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">)</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">return</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> </span><span style=3D"color: #066;" class=3D"styled-by=
-prettify">1</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">}</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"><br><br><br></span><span =
style=3D"color: #008;" class=3D"styled-by-prettify">auto</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">[</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify">a</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">]</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> X</s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">();</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #800;" class=3D"styled-by-prettify">// is_decomposable&lt;1, X&g=
t;::value =3D=3D true ; is_decomposable&lt;3, X&gt;::value =3D=3D false ?</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><br><br>=
</span><span style=3D"color: #008;" class=3D"styled-by-prettify">template</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&gt;</sp=
an><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span =
style=3D"color: #008;" class=3D"styled-by-prettify">struct</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify">tuple_size</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">&lt;</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify">X</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">&gt;</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">:</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> std<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify">integral_constant</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify">size_t</span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #=
066;" class=3D"styled-by-prettify">3</span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">&gt;</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">{};</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"><br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">au=
to</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">[</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify">b</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> c</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> d</span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">]</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> X</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">();</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"><br><br></span><span style=3D"col=
or: #800;" class=3D"styled-by-prettify">// auto [e] =3D X(); // error now</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><=
span style=3D"color: #800;" class=3D"styled-by-prettify">// is_decomposable=
&lt;1, X&gt;::value =3D=3D ?</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"><br><br></span></div></code></div><div><br></div><div>Als=
o, to illustrate my question about extent of the check, what should the fol=
lowing code do? (This is basically GB 20&#39;s motivating example.)</div><d=
iv><div class=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250)=
; border-color: rgb(187, 187, 187); border-style: solid; border-width: 1px;=
 word-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"subprett=
yprint"><font color=3D"#660066"><span style=3D"color: #008;" class=3D"style=
d-by-prettify">struct</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"> Y </span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">{};</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br=
></span><span style=3D"color: #008;" class=3D"styled-by-prettify">template<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;&gt;</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span=
 style=3D"color: #008;" class=3D"styled-by-prettify">struct</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> std</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify">tuple_size</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">&lt;</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify">Y</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">&gt;</span><span style=3D"color: #000;" class=3D"styled=
-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">{</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">const</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #008;" class=3D"styled-by-prettify">int</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"> value </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> </span><span style=3D"color: #066;" class=
=3D"styled-by-prettify">2</span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">;</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> </span><span style=3D"color: #800;" class=3D"styled-by-prettify">/* =
note missing &quot;static&quot; */</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">};</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"><br></span><span style=3D"color: #800;" class=3D"styled-by-prettify"=
>// tuple_element/get omitted</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"><br><br></span><span style=3D"color: #008;" class=3D"sty=
led-by-prettify">static_assert</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">(</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify">is_decomposable</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">&lt;</span><span style=3D"color: #066;" class=3D"styled-by-=
prettify">2</span><span style=3D"color: #660;" class=3D"styled-by-prettify"=
>,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> Y</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">&gt;::</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify">value</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">);</span></font></div></c=
ode></div><br></div><div>1) fire the static assert</div><div>2) somehow not=
 fire the static assert</div><div>3) cause a hard error</div><div>4) someth=
ing else</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/481b4d44-74e0-4cd3-8141-62d35dea8350%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/481b4d44-74e0-4cd3-8141-62d35dea8350=
%40isocpp.org</a>.<br />

------=_Part_6284_2019659389.1503909484359--

------=_Part_6283_1253384204.1503909484358--

.
