220 27028 <CAGg_6+Mnvpxu4mfYAHBSCh-_vNW93A8AfaLykts8+F_ytfSpaQ@mail.gmail.com> article
Path: news.gmane.org!not-for-mail
From: Nevin Liber <nevin@eviloverlord.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Proposal - non allocating std::function
Date: Thu, 14 Jul 2016 22:18:43 -0500
Lines: 127
Approved: news@gmane.org
Message-ID: <CAGg_6+Mnvpxu4mfYAHBSCh-_vNW93A8AfaLykts8+F_ytfSpaQ@mail.gmail.com>
References: <e00db911-40f5-4c11-a4b8-32bba77aa0a5@isocpp.org>
 <CANh-dXnpUNf2O5NTj213K1Jfmhge1=eit6+SistzYWZj+5CkNg@mail.gmail.com>
 <ff1087cf-5777-47e9-8caa-d28136aae130@isocpp.org> <e725d932-5fbd-4ac9-b707-66ab6e02a413@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary=001a113df136c70a900537a4156e
X-Trace: ger.gmane.org 1468552772 6216 80.91.229.3 (15 Jul 2016 03:19:32 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Fri, 15 Jul 2016 03:19:32 +0000 (UTC)
To: "std-proposals@isocpp.org" <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCE35H5S6IDBBO5MUG6AKGQEPYCGHUI@isocpp.org Fri Jul 15 05:19:31 2016
Return-path: <std-proposals+bncBCE35H5S6IDBBO5MUG6AKGQEPYCGHUI@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-pf0-f197.google.com ([209.85.192.197])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBCE35H5S6IDBBO5MUG6AKGQEPYCGHUI@isocpp.org>)
	id 1bNtf0-0002Tu-HF
	for gclcip-std-proposals@m.gmane.org; Fri, 15 Jul 2016 05:19:30 +0200
Original-Received: by mail-pf0-f197.google.com with SMTP id 63sf192324544pfx.3
        for <gclcip-std-proposals@m.gmane.org>; Thu, 14 Jul 2016 20:19:25 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:mime-version:sender: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=QYmkdfUSSf3zSP/XZlLatQTFnkJvycqA9zJQDjMFa4Y=;
        b=ZVOulxVJlBAHgZ1vwglO0t95w2JgK0fbwleKuNxaaVq/85L9DBLtoEo4wbb7coJ/XW
         8HBQJOE/Qq4uJxgMf08jPGS/0JZbDHyC149h2ewQAdrDQd85NkaI1bG4pExFWcU2vBTe
         +/FLuU2Ebe81wJTr1385S4dsxweziVTatvMFBIvx0dK7KUXHLKtZIx5grgmAWXevf76Q
         lX/yZop6MuUqZ90QgIrAdAeri08nBNAdoPmXeG6Ubk1crxJv7J/X1lmVcmVx5LUY+Lb3
         23dhNm7N5e7rvKY+5UTj4EBele9dARugbwG3sD6k4xAoCF/Qwb8RlQUyMjx89JWa/iRc
         soBQ==
X-Gm-Message-State: ALyK8tIHwpqSTK3Qr8/CGRrMkP7C10imC+vK2XoFDan8fdEQTCSpdHcQaGzD9TvtQ5mXKw==
X-Received: by 10.66.76.42 with SMTP id h10mr13198934paw.41.1468552764490;
        Thu, 14 Jul 2016 20:19:24 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.157.33.119 with SMTP id l52ls3050029otd.16.gmail; Thu, 14 Jul
 2016 20:19:23 -0700 (PDT)
X-Received: by 10.202.225.212 with SMTP id y203mr6411981oig.47.1468552763509;
        Thu, 14 Jul 2016 20:19:23 -0700 (PDT)
Original-Received: from mail-oi0-x22f.google.com (mail-oi0-x22f.google.com. [2607:f8b0:4003:c06::22f])
        by mx.google.com with ESMTPS id j63si5182902oif.161.2016.07.14.20.19.23
        for <std-proposals@isocpp.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Thu, 14 Jul 2016 20:19:23 -0700 (PDT)
Received-SPF: pass (google.com: domain of nliber@gmail.com designates 2607:f8b0:4003:c06::22f as permitted sender) client-ip=2607:f8b0:4003:c06::22f;
Original-Received: by mail-oi0-x22f.google.com with SMTP id w18so146088219oiw.3
        for <std-proposals@isocpp.org>; Thu, 14 Jul 2016 20:19:23 -0700 (PDT)
X-Received: by 10.202.245.20 with SMTP id t20mr7007304oih.131.1468552763081;
 Thu, 14 Jul 2016 20:19:23 -0700 (PDT)
Original-Sender: nliber@gmail.com
Original-Received: by 10.157.34.134 with HTTP; Thu, 14 Jul 2016 20:18:43 -0700 (PDT)
In-Reply-To: <e725d932-5fbd-4ac9-b707-66ab6e02a413@isocpp.org>
X-Original-Sender: nevin@eviloverlord.com
X-Original-Authentication-Results: mx.google.com;       dkim=pass
 header.i=@gmail.com;       spf=pass (google.com: domain of nliber@gmail.com
 designates 2607:f8b0:4003:c06::22f as permitted sender) smtp.mailfrom=nliber@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:27028
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/27028>

--001a113df136c70a900537a4156e
Content-Type: text/plain; charset=UTF-8

On 14 July 2016 at 21:57, Nicol Bolas <jmckesson@gmail.com> wrote:

> It's not a question of "should the standard library care about
> high-performance code". It's a question of "how many high-performance
> corner cases should be in the standard library?" You can keep adding stuff
> to cover corner cases ad infinitum. At some point, you have to draw a line.
>

Why?

I remember back in '12 when the big complaint was that the C++ Standard
Library was too small.  I must have been sleeping when that got solved.

My personal criterion are:

   - Things that people keep inventing in multiple places
   - Things that are hard to write correctly

Remember: we are talking about a type which, in the very next section, you
> admit "will only be used in specialized cases". To me, the standard library
> should be for tools that are of general use.
>

That's you.  And no one is forcing you to use the other stuff.


> That's why I like the idea of having a dedicated TS specifically for these
> types of things. I'd love to see a TS full of `small_vector`,
> `small_basic_string`, `inplace_function`, and so forth (but not
> `flat_set/map`. Those *need to be* in the standard library). Please don't
> look on TS's as some kind of ghetto for things that are not really
> standard. Yes, they really are standard, they really are supplied by
> compiler vendors, and they really are available.
>

And people who work on them expect the stuff in them to go into the IS at
some point.  If you wish to change the focus of TSes, you need to come to
meetings and present your case.


> This actually brings up a small technical deficiency with the current
> proposal: no interop with `std::function`. Well, besides the obvious fact
> that `inplace_function` is a callable and you could therefore shove one
> into a `function` and vice-versa.
>

Why?  What are the actual use cases for that?
-- 
 Nevin ":-)" Liber  <mailto:nevin@eviloverlord.com>  +1-847-691-1404

-- 
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/CAGg_6%2BMnvpxu4mfYAHBSCh-_vNW93A8AfaLykts8%2BF_ytfSpaQ%40mail.gmail.com.

--001a113df136c70a900537a4156e
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On 14 July 2016 at 21:57, Nicol Bolas <span dir=3D"ltr">&l=
t;<a href=3D"mailto:jmckesson@gmail.com" target=3D"_blank">jmckesson@gmail.=
com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=3D"gmail=
_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div>It&#39;s not a=
 question of &quot;should the standard library care about high-performance =
code&quot;. It&#39;s a question of &quot;how many high-performance corner c=
ases should be in the standard library?&quot; You can keep adding stuff to =
cover corner cases ad infinitum. At some point, you have to draw a line.<br=
></div></div></blockquote><div><br></div><div>Why?</div><div><br></div><div=
>I remember back in &#39;12 when the big complaint was that the C++ Standar=
d Library was too small.=C2=A0 I must have been sleeping when that got solv=
ed.</div><div><br></div><div>My personal criterion are:</div><div><ul><li>T=
hings that people keep inventing in multiple places</li><li>Things that are=
 hard to write correctly=C2=A0<br></li></ul></div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex"><div dir=3D"ltr"><div>Remember: we are talking about a type which, in=
 the very next section, you admit &quot;will only be used in specialized ca=
ses&quot;. To me, the standard library should be for tools that are of gene=
ral use.<br></div></div></blockquote><div><br></div><div>That&#39;s you.=C2=
=A0 And no one is forcing you to use the other stuff.</div><div>=C2=A0</div=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div>That&#39;s why I like=
 the idea of having a dedicated TS specifically for these types of things. =
I&#39;d love to see a TS full of `small_vector`, `small_basic_string`, `inp=
lace_function`, and so forth (but not `flat_set/map`. Those <i>need to be</=
i> in the standard library). Please don&#39;t look on TS&#39;s as some kind=
 of ghetto for things that are not really standard. Yes, they really are st=
andard, they really are supplied by compiler vendors, and they really are a=
vailable.<br></div></div></blockquote><div><br></div><div>And people who wo=
rk on them expect the stuff in them to go into the IS at some point.=C2=A0 =
If you wish to change the focus of TSes, you need to come to meetings and p=
resent your case.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div=
 dir=3D"ltr"><div>This actually brings up a small technical deficiency with=
 the current proposal: no interop with `std::function`. Well, besides the o=
bvious fact that `inplace_function` is a callable and you could therefore s=
hove one into a `function` and vice-versa.<br></div></div></blockquote><div=
><br></div><div>Why?=C2=A0 What are the actual use cases for that?</div></d=
iv>-- <br><div class=3D"gmail_signature" data-smartmail=3D"gmail_signature"=
><div dir=3D"ltr"><div><div dir=3D"ltr"><div>=C2=A0Nevin &quot;:-)&quot; Li=
ber=C2=A0 &lt;mailto:<a href=3D"mailto:nevin@eviloverlord.com" target=3D"_b=
lank">nevin@eviloverlord.com</a>&gt; =C2=A0+1-847-691-1404</div></div></div=
></div></div>
</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/CAGg_6%2BMnvpxu4mfYAHBSCh-_vNW93A8Afa=
Lykts8%2BF_ytfSpaQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAGg_6%2BMnvp=
xu4mfYAHBSCh-_vNW93A8AfaLykts8%2BF_ytfSpaQ%40mail.gmail.com</a>.<br />

--001a113df136c70a900537a4156e--

.
