220 34962 <bd58ac93-5d20-48e6-93cc-b07a727ce892@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: Mingxin Wang <wmx16835vv@163.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Idea about "std::pmr::memory_resource"
Date: Mon, 16 Oct 2017 05:08:45 -0700 (PDT)
Lines: 117
Approved: news@gmane.org
Message-ID: <bd58ac93-5d20-48e6-93cc-b07a727ce892@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>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_6073_1887928021.1508155725476"
X-Trace: blaine.gmane.org 1508155726 8564 195.159.176.226 (16 Oct 2017 12:08:46 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Mon, 16 Oct 2017 12:08:46 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBDNMBNHJWIGBBTWCSLHQKGQEJZ7GXNI@isocpp.org Mon Oct 16 14:08:40 2017
Return-path: <std-proposals+bncBDNMBNHJWIGBBTWCSLHQKGQEJZ7GXNI@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-vk0-f69.google.com ([209.85.213.69])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBDNMBNHJWIGBBTWCSLHQKGQEJZ7GXNI@isocpp.org>)
	id 1e44CF-0001Ts-Vs
	for gclcip-std-proposals@m.gmane.org; Mon, 16 Oct 2017 14:08:40 +0200
Original-Received: by mail-vk0-f69.google.com with SMTP id c76sf6024219vkd.14
        for <gclcip-std-proposals@m.gmane.org>; Mon, 16 Oct 2017 05:08:47 -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=+LeZx5BQ/b8egmkOXZ6Qd97nxiP6zf/QSFLgK3w8KGk=;
        b=hABHnTafUFP+RIKdRHNNQOGPd9i2zCBlcBpJB6f5CWLZxBrqR3xU3IAng/tj7pRb5o
         Dm/4nXHhjhj8crCtFiS4AavR1z+q/2xN8TQT7puedoeyKe0CoQUmRiqMS06K0zAfqo/E
         k1AOTGhQjaa9ZYPcE6iVou0fPHmTWBz0KgBviqKCflKQM312nhyKZ0qE947eHEfWExJU
         B0TrH6jWl+hLLXMJnsj9mIS5G3krq0IS/sVFfMBfr9PsQ0TUe+Fb5uFzH5xUOj99Rkpd
         InmGDque0JXVK2RIZE826gf+mNjW646pjySxLVYrYE1age1x1WTH8Ar8ez0QzvR1WZWj
         qy9A==
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=+LeZx5BQ/b8egmkOXZ6Qd97nxiP6zf/QSFLgK3w8KGk=;
        b=bMFxmDkipK6QzvAsqAzU9Bo389UOXRvwAQzMzLnVYseUXCV6IqnPIAnFh5HTRPa1T0
         jK+PH/IvIhtxIwW5FkxKNtPYL3wHN7iYdq12EUyUOuvKl3jhzVmSesENIcbnpNl4IYFQ
         uK3k57Cu7S3EoaDBGUcCjN02tDpxZ24oMIbg5ZhHb1l717IuS7ok8134dh97VPJ1QD/J
         n4+G4QGqNmONwg6hTQbbVju9UYadKm3Ch9klE3Du3W86xMFmN6X4Ku3BjJK0skPuoPGm
         YT22hL/QPihLYc2LvWZqmsjJUoyn+r6MbvE/SfGfHvjEWIZDRK/T8WliUo6EVU1zNRUj
         1dHw==
X-Gm-Message-State: AMCzsaU/d0gvYM4mL6cm5LPdFvbbtQEoeQx17yAeeVtTLxZDWczEZJ/T
	HQLKppmzvFGG6h32Widwl3OEfw==
X-Google-Smtp-Source: AOwi7QAF6TQOjCYtBWCw4CNqegfEtEVN19RAIJ3gGLbdCc9O0cmE73MsrmLEPP7T0jmnLoi4pqy+sA==
X-Received: by 10.159.59.10 with SMTP id i10mr5038619uah.61.1508155727370;
        Mon, 16 Oct 2017 05:08:47 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.31.138.69 with SMTP id m66ls3218950vkd.15.gmail; Mon, 16 Oct
 2017 05:08:46 -0700 (PDT)
X-Received: by 10.31.137.138 with SMTP id l132mr369762vkd.14.1508155726043;
        Mon, 16 Oct 2017 05:08:46 -0700 (PDT)
In-Reply-To: <6d0ad98b-87d5-43dd-ac54-2b7d3e03e31b@isocpp.org>
X-Original-Sender: wmx16835vv@163.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:34962
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/34962>

------=_Part_6073_1887928021.1508155725476
Content-Type: multipart/alternative; 
	boundary="----=_Part_6074_859882170.1508155725477"

------=_Part_6074_859882170.1508155725477
Content-Type: text/plain; charset="UTF-8"

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> 
> struct static_resource : memory_resource { aligned_storage_t<Size> m_data; 
> };
>
> template<typename MR>
> struct my_any;
>
>
> my_any<default_memory_resource> x1;
> my_any<static_resource<32>> x2;
>
> x1 = 1;
> x2 = x1;
>
> assert(x2 == 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 
   `default_memory_resource`, or
   - the two memory resources could not be reflexive (being reflexive 
   means, you could allocate some memory from one, and deallocate the memory 
   from another).

Mingxin Wang

-- 
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/bd58ac93-5d20-48e6-93cc-b07a727ce892%40isocpp.org.

------=_Part_6074_859882170.1508155725477
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Monday, October 16, 2017 at 6:55:41 PM UTC+8, Aleksey L=
oginov wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-le=
ft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">=
<div>Let&#39;s look at a more applied example:</div><div><br></div><div><di=
v 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</sp=
an><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"> st=
atic_resource </span><span style=3D"color:#660">:</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:rgb(34,34,34)"><span style=3D"color:#0=
00">memory_resource </span><span style=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-color:rgb(255,255,255)"><span style=3D"co=
lor:#000">aligned_storage_t</span><span style=3D"color:#660">&lt;</span></s=
pan><span style=3D"color:rgb(102,0,102);font-family:Arial,Helvetica,sans-se=
rif">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-family:Arial,Helvetica,sans-serif"><span s=
tyle=3D"color:#000"> m_data</span><span style=3D"color:#660">;</span><span =
style=3D"color:#000"> </span><span style=3D"color:#660">};</span></span></d=
iv><div><span style=3D"color:#000"><br></span><span style=3D"color:#008">te=
mplate</span><span style=3D"color:#660">&lt;</span><span><font color=3D"#00=
0000">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><sp=
an style=3D"color:#000">=C2=A0my_any;<br><br><br>my_any&lt;default_</span><=
span style=3D"color:rgb(0,0,0)">memory_resource</span><span style=3D"color:=
rgb(0,0,0);font-family:Arial,Helvetica,sans-serif"><wbr>&gt; x1;</span></di=
v><div><span style=3D"color:#000"><span>my_any&lt;</span><span style=3D"fon=
t-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><sp=
an style=3D"font-family:Arial,Helvetica,sans-serif">x1 =3D 1;<br>x2 =3D x1;=
<br></span><br>assert(</span><span style=3D"color:rgb(0,0,0);font-family:Ar=
ial,Helvetica,sans-serif">x2 =3D=3D 1</span><span style=3D"color:rgb(0,0,0)=
;font-family:Arial,Helvetica,sans-serif">);</span></div><div><span style=3D=
"color:#000"><br></span></div></code></div><br></div><div>How can you=C2=A0=
do this without RTTI?</div></div></blockquote><div><br></div><div>And I don=
&#39;t think `x2` should be copy-assignable from `x1`, if</div><div><ul><li=
>`static_resource&lt;32&gt;` is not copy-constructible from `default_memory=
_resource`, or</li><li>the two memory resources could not be reflexive (bei=
ng reflexive means, you could allocate some memory from one, and deallocate=
 the memory from another).</li></ul><div>Mingxin Wang</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/bd58ac93-5d20-48e6-93cc-b07a727ce892%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/bd58ac93-5d20-48e6-93cc-b07a727ce892=
%40isocpp.org</a>.<br />

------=_Part_6074_859882170.1508155725477--

------=_Part_6073_1887928021.1508155725476--

.
