220 28276 <aecbae99-d3a6-494d-b5c0-269d75a65cd4@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: mihailnajdenov@gmail.com
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Something is better then nothing: Please, relax
 Initializer List use with operators!
Date: Sun, 18 Sep 2016 07:11:38 -0700 (PDT)
Lines: 134
Approved: news@gmane.org
Message-ID: <aecbae99-d3a6-494d-b5c0-269d75a65cd4@isocpp.org>
References: <0892f743-bca2-4f18-b023-d4a57cea60fb@isocpp.org>
 <0e27bc76-eada-4d70-80d7-b91b5a2d5767@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_176_2063743836.1474207898305"
X-Trace: blaine.gmane.org 1474207909 32346 195.159.176.226 (18 Sep 2016 14:11:49 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Sun, 18 Sep 2016 14:11:49 +0000 (UTC)
Cc: mihailnajdenov@gmail.com
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCUJ3A7GRAPRBG6B7K7AKGQEMAQOERA@isocpp.org Sun Sep 18 16:11:44 2016
Return-path: <std-proposals+bncBCUJ3A7GRAPRBG6B7K7AKGQEMAQOERA@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-pa0-f71.google.com ([209.85.220.71])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBCUJ3A7GRAPRBG6B7K7AKGQEMAQOERA@isocpp.org>)
	id 1blcoo-0007f2-D2
	for gclcip-std-proposals@m.gmane.org; Sun, 18 Sep 2016 16:11:42 +0200
Original-Received: by mail-pa0-f71.google.com with SMTP id mi5sf251439805pab.2
        for <gclcip-std-proposals@m.gmane.org>; Sun, 18 Sep 2016 07:11:44 -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:x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=SgS84bALKoSagMFiwpv+hxTm3ZbuMt9FND8uR/xpP0s=;
        b=JhRqpCzYHnDdrmMsL+qL/b/jZxK4MqUrchTYsRGE7UbsM2AaaBs1u5TEcdYoWjRrrz
         sCoyRSBI+zReWcCQnSfcnahKJa1fZXlABESLpbqC5AMaYhDpEuv9fxI4ZyDkLG975iRQ
         Hb9Yj2OcU1NqruTieY2D9uDFu7iM7T5oPEJBZPRPki4FSKOVdgVJU8WWlvJx5GN2EK3E
         aIbvVt84TDBOpCAGbDp3MzUdENE5Y/4GpDC0rQIEzeQ58AKvWUPXIAzVm1JxzsGg7L3v
         JTQiBp+CMKNb2V9O2j2icTZXa7HfC3OjZ4h2Mvs+w1PQG96iLECC/UNUxPah6ltue0GB
         3lyg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=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=SgS84bALKoSagMFiwpv+hxTm3ZbuMt9FND8uR/xpP0s=;
        b=ml/SGPSDkjxW6teu8n8l3D0x+nD7qZBx1rUbWpPLMA5nvW6FXwTRsutfodDONv8Z+5
         C/7va2AiP6JVDz8kohICZOz6mtdUR1eAfIAmkUq7MnbQH9c1ejZf+WHfqn4b1W0wav8s
         1wNKId+fuQgEdhuBcz709EKYhuBtdrBW7jTG/Kz/Etf0LvRAdBvLmSYm6zXfTuOQF5ar
         DeHDl3h5fRaijQp2bN8p/suup70vbebd4nhIryV0KWAO84VMxPwRj1UCzT08U9C3oUin
         19sEnUmI4kKdiTpoDDAByXtWHFSmntL3rvjon5BoXZ8nHZPHqqF1ycKwvCnGqWfnVh6d
         jPFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        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=SgS84bALKoSagMFiwpv+hxTm3ZbuMt9FND8uR/xpP0s=;
        b=Hhm/75mMmjwkJDvraqUfzGsZfr/uqiQUdc2vNVDBo2m+EqUF1FKhY5qpIMRPAv27cR
         7N1XppVUKdGozr7AroaV+tJpEg6BrC3l2/2X/6f9eJ92Wuf7FZLCs8hJ45/vnurn6mQB
         MdvOI0Gi/2NGew3ltejQYBqSBALj3vDV5c6XMPZN++9ygSwbnKy/j86XdlFUtHP5DO81
         AEN/cio86pq2EchB8RLrCC3JEF6v3wwmMEjSVXirMZ2tZHNESQgKwPNSZ82tfPJ8w5fo
         Dv+5oYbREyUICvDL92M2TZAu/T6L5hyfG+sFgbUrEBc5xtVLkj+kkt+b4q5qWPlDe5N3
         DNAQ==
X-Gm-Message-State: AE9vXwNsGsicHbcANGZ0djhwrx6K6lxnuWUy7RLhOrIZkHfkuiPRLxtoAtGhjalXCgWINg==
X-Received: by 10.66.155.65 with SMTP id vu1mr2353086pab.129.1474207903646;
        Sun, 18 Sep 2016 07:11:43 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.107.201.21 with SMTP id z21ls587004iof.15.gmail; Sun, 18 Sep
 2016 07:11:39 -0700 (PDT)
X-Received: by 10.36.131.199 with SMTP id d190mr182256ite.3.1474207899331;
        Sun, 18 Sep 2016 07:11:39 -0700 (PDT)
In-Reply-To: <0e27bc76-eada-4d70-80d7-b91b5a2d5767@isocpp.org>
X-Original-Sender: MihailNajdenov@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:28276
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/28276>

------=_Part_176_2063743836.1474207898305
Content-Type: multipart/alternative; 
	boundary="----=_Part_177_1312527633.1474207898306"

------=_Part_177_1312527633.1474207898306
Content-Type: text/plain; charset=UTF-8

For a novice assignment and comparison are semantically and syntactically 
similar. I put "similar" in quotes. To explain why one does not work, but 
the other works is not easy, beyond "its different things, different 
operations". And "it is hard to do", which is the real answer. 

About symmetry - that is the main issue - to have symmetry is much, much, 
much less important then to have the init-list available to operators uses 
(at least in my opinion).
The reason I put so much 'much' is because *there is clear and readable 
indication why it (the symmetry) does not work - *the user knows (learns) 
the {,} does *not *instantiate an object by itself, so no "guessing" 
(overloading) can begin. *This can not be said for the current state of 
affairs - there is no way to know in advance (for a novice) which operation 
will accepts {} and which not - *the user will have to learn, through trail 
and error, which combo is hardcoded to work. 
Considering there is no expression which starts with {}, he will 
know(learn) naked {} will not get him anywhere, he'll have to add the type 
this time around. 
if(Point{-1, -1} == p) return;


As for the ternary, again - insisting on total symmetry kills the greater 
benefits. 

But I am arguing, users already know left to right, top to bottom is 
important in c and c++. 

*The user already knows sometimes the compiler must be able to see what you 
are using before you are using it. *

*In this case the user must show one type first, so the compiler can guess 
the other, left to right as always, *an extension of the age-old rule.

Much like you can't call a function which is not declared before it is 
called or use an object #included after its place of usage - naked {} 
depends on some type to be provided first so it can do its magic (which is 
already the case for the limited cases it is used today). 

-- 
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/aecbae99-d3a6-494d-b5c0-269d75a65cd4%40isocpp.org.

------=_Part_177_1312527633.1474207898306
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">For a novice assignment and comparison are semantically an=
d syntactically similar. I put &quot;similar&quot; in quotes. To explain wh=
y one does not work, but the other works is not easy, beyond &quot;its diff=
erent things, different operations&quot;. And &quot;it is hard to do&quot;,=
 which is the real answer.=C2=A0<div><br></div><div>About symmetry - that i=
s the main issue - to have symmetry is much, much, much less important then=
 to have the init-list available to operators uses (at least in my opinion)=
..</div><div>The reason I put so much &#39;much&#39; is because <i>there is =
clear and readable indication why it (the symmetry) does not work - </i>the=
 user knows (learns) the {,} does <i>not </i>instantiate=C2=A0an object by =
itself, so no &quot;guessing&quot; (overloading) can begin. <i>This can not=
 be said for the current state of affairs - there is no way to know in adva=
nce (for a novice) which operation will accepts {} and which not - </i>the =
user will have to learn, through trail and error, which combo is hardcoded =
to work.=C2=A0</div><div>Considering there is no expression which starts wi=
th {}, he will know(learn) naked {} will not get him anywhere, he&#39;ll ha=
ve to add the type this time around.=C2=A0</div><div><div class=3D"prettypr=
int" 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"subprettyprint"><span style=3D"co=
lor: rgb(0, 0, 136);"><span style=3D"color: #008;" class=3D"styled-by-prett=
ify">if</span></span><span style=3D"color: rgb(102, 102, 0);"><span style=
=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color=
: #606;" class=3D"styled-by-prettify">Point</span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">{-</span></span><span style=3D"color: rgb(=
0, 102, 102);"><span style=3D"color: #066;" class=3D"styled-by-prettify">1<=
/span></span><span style=3D"color: rgb(102, 102, 0);"><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">,</span></span><span style=3D"color: r=
gb(0, 0, 0);"><span style=3D"color: #000;" class=3D"styled-by-prettify"> </=
span></span><span style=3D"color: rgb(102, 102, 0);"><span style=3D"color: =
#660;" class=3D"styled-by-prettify">-</span></span><span style=3D"color: rg=
b(0, 102, 102);"><span style=3D"color: #066;" class=3D"styled-by-prettify">=
1</span></span><span style=3D"color: rgb(102, 102, 0);"><span style=3D"colo=
r: #660;" class=3D"styled-by-prettify">}</span></span><span style=3D"color:=
 rgb(0, 0, 0);"><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span></span><span style=3D"color: rgb(102, 102, 0);"><span style=3D"color=
: #660;" class=3D"styled-by-prettify">=3D=3D</span></span><span style=3D"co=
lor: rgb(0, 0, 0);"><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> p</span></span><span style=3D"color: rgb(102, 102, 0);"><span style=3D"=
color: #660;" class=3D"styled-by-prettify">)</span></span><span style=3D"co=
lor: rgb(0, 0, 0);"><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> </span></span><span style=3D"color: rgb(0, 0, 136);"><span style=3D"col=
or: #008;" class=3D"styled-by-prettify">return</span></span><span style=3D"=
color: rgb(102, 102, 0);"><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">;</span></span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"><br></span></div></code></div><br></div><div><br></div><div>As for t=
he ternary, again - insisting on total symmetry kills the greater benefits.=
=C2=A0</div><div><br></div><div>But I am arguing, users already know left t=
o right, top to bottom is important in c and c++.=C2=A0</div><div><br></div=
><div><i>The user already knows sometimes the compiler must be able to see =
what you are using before you are using it.=C2=A0</i></div><div><i><br></i>=
</div><div><b>In this case the user must show one type first, so the compil=
er can guess the other, left to right as=C2=A0always, </b>an extension of t=
he age-old rule.</div><div><br></div><div>Much like you can&#39;t call a fu=
nction which is not declared before it is called or use an object #included=
 after its place of usage - naked {} depends on some type to be provided fi=
rst so it can do its magic (which is already the case for the limited cases=
 it is used today).=C2=A0</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/aecbae99-d3a6-494d-b5c0-269d75a65cd4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/aecbae99-d3a6-494d-b5c0-269d75a65cd4=
%40isocpp.org</a>.<br />

------=_Part_177_1312527633.1474207898306--

------=_Part_176_2063743836.1474207898305--

.
