220 34964 <4af80cf7-244c-4137-9133-1a36a209e4ca@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Aleksey Loginov <aleksey.loginov@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Idea about "std::pmr::memory_resource"
Date: Mon, 16 Oct 2017 05:26:57 -0700 (PDT)
Lines: 146
Approved: news@gmane.org
Message-ID: <4af80cf7-244c-4137-9133-1a36a209e4ca@isocpp.org>
References: <0a8293b4-3246-47a5-9881-bc1ca4b91772@isocpp.org>
 <07ddb1f6-d3af-43df-bf96-8975c1ab4313@isocpp.org>
 <2e191a96-1952-479b-b78b-22e31f8e03de@isocpp.org>
 <0e37b5ae-64f6-4a8a-86bd-f44b119ed40a@isocpp.org>
 <15f8c5ba-3a6a-4441-9620-92e157c66094@isocpp.org>
 <26fe4cb4-98ca-41cc-ac96-5c51851799d1@isocpp.org>
 <fee0a310-5dc5-4421-bf49-bc8fa164fe29@isocpp.org>
 <784ffce8-ace7-449d-a13d-a99d7336117a@isocpp.org>
 <d029c18a-12ee-4a7d-828c-ab1bd07b58c6@isocpp.org>
 <6d0ad98b-87d5-43dd-ac54-2b7d3e03e31b@isocpp.org>
 <bd58ac93-5d20-48e6-93cc-b07a727ce892@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_3737_1939293325.1508156817553"
X-Trace: blaine.gmane.org 1508156824 28830 195.159.176.226 (16 Oct 2017 12:27:04 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Mon, 16 Oct 2017 12:27:04 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCGIDMXA5AJRBEWLSLHQKGQEKCN3VGI@isocpp.org Mon Oct 16 14:26:59 2017
Return-path: <std-proposals+bncBCGIDMXA5AJRBEWLSLHQKGQEKCN3VGI@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-ua0-f198.google.com ([209.85.217.198])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBCGIDMXA5AJRBEWLSLHQKGQEKCN3VGI@isocpp.org>)
	id 1e44Ts-0005rA-6o
	for gclcip-std-proposals@m.gmane.org; Mon, 16 Oct 2017 14:26:52 +0200
Original-Received: by mail-ua0-f198.google.com with SMTP id f46sf7621027uae.11
        for <gclcip-std-proposals@m.gmane.org>; Mon, 16 Oct 2017 05:27:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to: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=+8GyrepKXj6krVFpN7ILOVIXEqx4h2xusET3B5HNFPA=;
        b=LbwzAP2S9MJ0O02CNSl+oALJ6ChMS1Hi0J/NlCJYN1KLACim0gnWlKx5Rc6k5o13w3
         O+FNfmFDzLKGH7d8q+Zj+CcAWAaKMsQeW6hkQhUirMzpZw8KZ18zbxQv3J/hvRT6jc2G
         49y186LMvLmNAE+CAWPCl9XVElHeXhVkc0rYp1Y8WDyVEDdoHuJH1bSE5Vk0vD7X/7fI
         tBhYSt3C/PZNR9ey4ZILeEpTuZDNPcDDu48IKZ/63gCDpkBLXEiqIuASsdxCx7e8j6bZ
         nNZBLd461upxHenX0Ii5OdHOf5HCASAs6f3AEyMPy+Z32nH+BV2qGmjkeGKhKd93/gJf
         4oNA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to: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=+8GyrepKXj6krVFpN7ILOVIXEqx4h2xusET3B5HNFPA=;
        b=T1BsDGx9US9jeaA1rSkxSpt6JXNQ0n1X9FcG5tiFhQeB5P6KEFxRAa7/8++SXdQuXi
         4j9LOD97hee4tgR7ghmBi5mvqNePMebOm+dIS5jEL+S8o2lQj520f+qajO86+Haubhv3
         WRqzm1Xf54AoIB2AsBJ3x3diORYgX9NlCsUGmbWAE1wTczs15kQgmbR1pGuLjZ8GAyoB
         MQKhxwLAOYBjT0ilEU5nHjUHyUFaPugNQXZdPhKQ0eCfjQeP/w5zinHaUvpmRdrKa86K
         GsTLqVK0R6HOL7EegoVbfXCYMVdnhGpPGBZnTJx2wtK2eB6f9nepuciiWeZysc52jZue
         BpSg==
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: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=+8GyrepKXj6krVFpN7ILOVIXEqx4h2xusET3B5HNFPA=;
        b=Z8WrJHZ4K5QKYlXeiYnRUm5UK5NLYgvzcCymPZs3/5cS82sEmLL4/aiwVbubPIw14n
         3ZcKvDuPqAIxVOefYTAcGwTLxW9UD6w0d5irLhjaR9iuH1xXWPlxAnDvJQElDr7s/89h
         4ooHN6n7uhLolzOnPmd6clXSVkr0r04AirrAurgqMG6xpKF7ntNt5apeQLJ4RgJZ777U
         Jqp5trffu5209FE/0r6O27eq4RDCI2IAZOHjkf05ztnDTeqRdORnJJsy+pye0D82ApE1
         RbZgNAT6/rcsJJtpAdJq5VfQDKm992HU/jrPx/aGCI4GhKvpiy1UZ4ri5ZxvhnyS1ADr
         eBDg==
X-Gm-Message-State: AMCzsaVvC930CJfDR+WD3+LRtltmhN65uk1VjCXNjeZdjemI1NPLugUO
	KnjF1KMlhuzZ6zLBOrgRzFaaNw==
X-Google-Smtp-Source: ABhQp+TaXc8Wi8PwsIEIi/I6nIl6vf2Stktn7wZoTJudMr8vops20JWIUx2+XZQj2Uqgog+mtlJ5Og==
X-Received: by 10.31.50.11 with SMTP id y11mr3090842vky.10.1508156819456;
        Mon, 16 Oct 2017 05:26:59 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.31.52.214 with SMTP id b205ls3057628vka.6.gmail; Mon, 16 Oct
 2017 05:26:58 -0700 (PDT)
X-Received: by 10.31.69.204 with SMTP id s195mr722381vka.12.1508156818065;
        Mon, 16 Oct 2017 05:26:58 -0700 (PDT)
In-Reply-To: <bd58ac93-5d20-48e6-93cc-b07a727ce892@isocpp.org>
X-Original-Sender: Aleksey.Loginov@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:34964
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/34964>

------=_Part_3737_1939293325.1508156817553
Content-Type: multipart/alternative; 
	boundary="----=_Part_3738_820010911.1508156817553"

------=_Part_3738_820010911.1508156817553
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable



=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA, 16 =D0=
=BE=D0=BA=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=B3., 15:08:45 UTC+3 =D0=BF=
=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C Mingxin =
Wang=20
=D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> On Monday, October 16, 2017 at 6:55:41 PM UTC+8, Aleksey Loginov wrote:
>>
>> Let's look at a more applied example:
>>
>> template<size_t Size>=20
>> struct static_resource : memory_resource { aligned_storage_t<Size> m_dat=
a
>> ; };
>>
>> template<typename MR>
>> struct my_any;
>>
>>
>> my_any<default_memory_resource> x1;
>> my_any<static_resource<32>> x2;
>>
>> x1 =3D 1;
>> x2 =3D x1;
>>
>> assert(x2 =3D=3D 1);
>>
>>
>> How can you do this without RTTI?
>>
>
> And I don't think `x2` should be copy-assignable from `x1`, if
>
>    - `static_resource<32>` is not copy-constructible from=20
>    `default_memory_resource`, or
>    - the two memory resources could not be reflexive (being reflexive=20
>    means, you could allocate some memory from one, and deallocate the mem=
ory=20
>    from another).
>
>
>
So x1 =3D 1 is valid, but x2 =3D x1 is not valid? Why?
x2 doesn't deallocates from default_memory_resource. It work only with=20
static_resource.


--=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/4af80cf7-244c-4137-9133-1a36a209e4ca%40isocpp.or=
g.

------=_Part_3738_820010911.1508156817553
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>=D0=BF=D0=BE=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8C=
=D0=BD=D0=B8=D0=BA, 16 =D0=BE=D0=BA=D1=82=D1=8F=D0=B1=D1=80=D1=8F 2017 =D0=
=B3., 15:08:45 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=
=D0=B5=D0=BB=D1=8C Mingxin Wang =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:=
<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;bor=
der-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">On Monday, Oc=
tober 16, 2017 at 6:55:41 PM UTC+8, Aleksey Loginov wrote:<blockquote class=
=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc s=
olid;padding-left:1ex"><div dir=3D"ltr"><div>Let&#39;s look at a more appli=
ed example:</div><div><br></div><div><div 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><div><span style=3D"color:#008">template</span=
><span style=3D"color:#660">&lt;</span><span style=3D"color:#000">size_t </=
span><span style=3D"color:#606">Size</span><span style=3D"color:#660">&gt;<=
/span><span style=3D"color:#000"> <br></span><span style=3D"color:#008">str=
uct</span><span style=3D"color:#000"> static_resource </span><span style=3D=
"color:#660">:</span><span style=3D"color:#000"> </span><span style=3D"colo=
r:rgb(34,34,34)"><span style=3D"color:#000">memory_resource </span><span st=
yle=3D"color:#660">{</span><span style=3D"color:#000"> </span></span><span =
style=3D"color:rgb(0,0,0);font-family:DejaVuSansMono,&quot;DejaVu Sans Mono=
&quot;,courier,monospace;font-size:12.8px;white-space:nowrap;background-col=
or:rgb(255,255,255)"><span style=3D"color:#000">aligned_storage_t</span><sp=
an style=3D"color:#660">&lt;</span></span><span style=3D"color:rgb(102,0,10=
2);font-family:Arial,Helvetica,sans-serif">Size</span><span style=3D"color:=
rgb(0,0,0);font-family:DejaVuSansMono,&quot;DejaVu Sans Mono&quot;,courier,=
monospace;font-size:12.8px;white-space:nowrap;background-color:rgb(255,255,=
255)"><span style=3D"color:#660">&gt;</span></span><span style=3D"font-fami=
ly:Arial,Helvetica,sans-serif"><span style=3D"color:#000"> m_data</span><sp=
an style=3D"color:#660">;</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#660">};</span></span></div><div><span style=3D"color:#000"><b=
r></span><span style=3D"color:#008">template</span><span style=3D"color:#66=
0">&lt;</span><span><font color=3D"#000000">typename MR</font></span><span =
style=3D"color:#660">&gt;</span><span style=3D"color:#000"><br></span><span=
 style=3D"color:#008">struct</span><span style=3D"color:#000">=C2=A0my_any;=
<br><br><br>my_any&lt;default_</span><span style=3D"color:rgb(0,0,0)">memor=
y_resource</span><span style=3D"color:rgb(0,0,0);font-family:Arial,Helvetic=
a,sans-serif"><wbr>&gt; x1;</span></div><div><span style=3D"color:#000"><sp=
an>my_any&lt;</span><span style=3D"font-family:Arial,Helvetica,sans-serif">=
static_resource&lt;32&gt;</span><span style=3D"font-family:Arial,Helvetica,=
sans-serif">&gt; x2;</span><br><br><span style=3D"font-family:Arial,Helveti=
ca,sans-serif">x1 =3D 1;<br>x2 =3D x1;<br></span><br>assert(</span><span st=
yle=3D"color:rgb(0,0,0);font-family:Arial,Helvetica,sans-serif">x2 =3D=3D 1=
</span><span style=3D"color:rgb(0,0,0);font-family:Arial,Helvetica,sans-ser=
if">);</span></div><div><span style=3D"color:#000"><br></span></div></code>=
</div><br></div><div>How can you=C2=A0do this without RTTI?</div></div></bl=
ockquote><div><br></div><div>And I don&#39;t think `x2` should be copy-assi=
gnable from `x1`, if</div><div><ul><li>`static_resource&lt;32&gt;` is not c=
opy-constructible from `default_memory_resource`, or</li><li>the two memory=
 resources could not be reflexive (being reflexive means, you could allocat=
e some memory from one, and deallocate the memory from another).</li></ul><=
div><br></div></div></div></blockquote><div><br></div><div>So x1 =3D 1 is v=
alid, but x2 =3D x1 is not valid? Why?</div><div>x2 doesn&#39;t deallocates=
 from default_memory_resource. It work only with static_resource.</div><div=
><br></div><div><br></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/4af80cf7-244c-4137-9133-1a36a209e4ca%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/4af80cf7-244c-4137-9133-1a36a209e4ca=
%40isocpp.org</a>.<br />

------=_Part_3738_820010911.1508156817553--

------=_Part_3737_1939293325.1508156817553--

.
