220 16990 <a71055e4-934e-45ac-8ed5-cdc94934dd12@isocpp.org> article
Path: news.gmane.org!not-for-mail
From: inkwizytoryankes@gmail.com
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Re: Token based access to private members in reflection
Date: Fri, 13 Mar 2015 15:09:18 -0700 (PDT)
Lines: 356
Approved: news@gmane.org
Message-ID: <a71055e4-934e-45ac-8ed5-cdc94934dd12@isocpp.org>
References: <d1d01ce0-cac0-4177-b5cf-f3352591f278@isocpp.org>
 <104b02bf-a3bc-495a-870e-9af9e1ec1fdf@isocpp.org>
 <04b687bc-2cf5-402f-bb27-0365f77169b5@isocpp.org>
 <CAFk2RUZ55VGe56=jUz76oL5mNsSKsqSehSfHNNurZHwy2EVS3A@mail.gmail.com>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_1014_1779994983.1426284558420"
X-Trace: ger.gmane.org 1426284570 2868 80.91.229.3 (13 Mar 2015 22:09:30 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Fri, 13 Mar 2015 22:09:30 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBDDLTAGNTIBBBD6ARWUAKGQE4KUDZDQ@isocpp.org Fri Mar 13 23:09:22 2015
Return-path: <std-proposals+bncBDDLTAGNTIBBBD6ARWUAKGQE4KUDZDQ@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-ie0-f199.google.com ([209.85.223.199])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBDDLTAGNTIBBBD6ARWUAKGQE4KUDZDQ@isocpp.org>)
	id 1YWXlg-0006Pp-O3
	for gclcip-std-proposals@m.gmane.org; Fri, 13 Mar 2015 23:09:21 +0100
Original-Received: by ieqm10 with SMTP id m10sf63206577ieq.1
        for <gclcip-std-proposals@m.gmane.org>; Fri, 13 Mar 2015 15:09:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=date:from:to:message-id:in-reply-to:references:subject:mime-version
         :content-type:x-original-sender:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe;
        bh=nBVpUhPQwChchJ9JUpZnTFOXSr2Gruqhzm5NvzkISWY=;
        b=o6eCf4sIFyQCV1oMxvYKAUc9SIfWAU5C4agLkknfFcqDxFCGZ80Dj6xR5wHuh4icu6
         5qV2HYfrvvUnLXH33SRpLrqWZ/nTc/0n7FzyJAil/+oZPynUGluWPozM8HJOSVbcKsEb
         pj/MwfpajUvob1k+XS5DP0TAkTQ182Ls0JoLPtc5IDvm6KztKfxjlPPAd+gCjeOd1IOt
         FZIXqLrCHbwb2zqQLA/Mzow5Y4jHMtUbSDFoE/5cEeKYzfquz9xDTkd8iC6ZHFgvvJQl
         tbkA2aEA0xsZyUTWQ25X+ERkzR0KeBHsz8lXhV4pIHqfk2Z0pzjM0TIhsgC6W4D+tb38
         JrCw==
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:message-id:in-reply-to:references
         :subject:mime-version:content-type:x-original-sender:reply-to
         :precedence:mailing-list:list-id:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=nBVpUhPQwChchJ9JUpZnTFOXSr2Gruqhzm5NvzkISWY=;
        b=V4BFbtnrxfea2CJgMkHY5D1ct3vxT2tIvZ845yET5Z77T8UgEx2RXdu6KhtKe8PPhj
         tRiUKdT/4Y/fLdFxP1EGrcvBPWGtl0b0DW3wSeQ5bJ2Txp6jCJnPK5eNg9hDUwa9e/hl
         Fih1pNSa+Ar9v4HhjTNTegtj9lU8ZzpHkN/oNoXs1gPrzoKr6aW4b9+dkFsk70SuZUIl
         PDgLo+lNbX+AJJnBfX77SqHghiKGVfenri9IxcLZjTeXfu0Vk+HqPa8datz9hUpZ6KBn
         ztTRC4pH8slVSswYJaFWf1f5F7qo3QGIgTtvDWY4fesVfhiCXeguH95e0sWWzxz8OtoI
         ZWuQ==
X-Gm-Message-State: ALoCoQkZyzYysVkFFNBJRwZ2CpuCRU17yl1K+ygaHqvtpjBss8/VsJfjlTyTZKTk/IYi3Nc+CXGW
X-Received: by 10.50.122.7 with SMTP id lo7mr18134663igb.7.1426284559850;
        Fri, 13 Mar 2015 15:09:19 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.140.98.72 with SMTP id n66ls1977233qge.71.gmail; Fri, 13 Mar
 2015 15:09:19 -0700 (PDT)
X-Received: by 10.140.92.55 with SMTP id a52mr771365qge.16.1426284559140;
        Fri, 13 Mar 2015 15:09:19 -0700 (PDT)
In-Reply-To: <CAFk2RUZ55VGe56=jUz76oL5mNsSKsqSehSfHNNurZHwy2EVS3A@mail.gmail.com>
X-Original-Sender: inkwizytoryankes@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: <http://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <http://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>,
 <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:16990
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/16990>

------=_Part_1014_1779994983.1426284558420
Content-Type: multipart/alternative; 
	boundary="----=_Part_1015_1928476571.1426284558420"

------=_Part_1015_1928476571.1426284558420
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I see, this is unfixable problem. Only way I see my example could fulfill=
=20
this requirement is add special token that is named `hack_this_please` with=
=20
oblivious functionality.
This at least would separate legit use of private members (like=20
serialization) and hack that are workaround of class limitations (like lack=
=20
of support for serialization :) ).
But this is in itself hack of my proposition.

On Friday, March 13, 2015 at 10:44:09 PM UTC+1, Ville Voutilainen wrote:
>
>
>
> On 13 March 2015 at 23:25, <inkwizyt...@gmail.com <javascript:>> wrote:
>
>> Do you know why people was against this approach?
>>
>
> There is a desire to use reflection on legacy types that would be=20
> infeasible
> to modify to contain such a token.
> =20
>
>>
>>
>> On Friday, March 13, 2015 at 12:22:15 AM UTC+1, Cleiton Santoia wrote:
>>>
>>>
>>>
>>>
>>>     In this document http://random.m-ou.se/reflectionfeedbackurbana.htm=
l you=20
>>> will find :
>>>
>>>
>>> Opt-in to unsafe reflection from the class under reflection:
>>> SFFNASA543102
>>>
>>>
>>>
>>> Em quinta-feira, 12 de mar=C3=A7o de 2015 19:46:29 UTC-3,=20
>>> inkwizyt...@gmail.com escreveu:
>>>>
>>>> I have idea of system that could be used of handling private data in=
=20
>>>> reflection.
>>>>
>>>> First one, we add new template
>>>> template<typename T>
>>>> class private_access_token
>>>> {
>>>>     using type =3D /* undefined */;
>>>>     friend T;
>>>> };
>>>>
>>>>
>>>> And we add to `class_member::pointer` (like from n4113) new default=20
>>>> parameter:
>>>> template<typename T, size_t I, token =3D void>
>>>> struct pointer
>>>> {
>>>> private: //this line depend if I'th member is private
>>>>     constexpr static SomeType T::* value =3D /* something */;
>>>>     friend T;
>>>> };
>>>>
>>>> template<typename T, size_t I>
>>>> struct pointer<T, I, typename private_access_token<T>::type >
>>>> {
>>>> public: //always public with token
>>>>     constexpr static SomeType T::* value =3D /* something */;
>>>>     friend T;
>>>> };
>>>>
>>>>
>>>>
>>>>
>>>> Thanks to that, class implementation can have control over private=20
>>>> access and allow sharing it to third party libraries without exposing=
=20
>>>> private fields to the wild.
>>>> Some class designer could even allow every one using it by exposing=20
>>>> type form token:
>>>> class A
>>>> {
>>>>     int a;
>>>> public:
>>>>     using PrivateToken =3D private_access_token<A>::type;
>>>> };
>>>>
>>>> class B
>>>> {
>>>>     int a;
>>>>     int b;
>>>> public:
>>>>     std::string to_string() { return third_party_func<private_
>>>> access_token<B>::type>(this); }
>>>> };
>>>>
>>>>
>>>>
>>>> Do you think that could be good solution for that?
>>>>
>>>>
>>>>  --=20
>>
>> ---=20
>> You received this message because you are subscribed to the Google Group=
s=20
>> "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n=20
>> email to std-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> Visit this group at=20
>> http://groups.google.com/a/isocpp.org/group/std-proposals/.
>>
>
>

--=20

---=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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

------=_Part_1015_1928476571.1426284558420
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I see, this is unfixable problem. Only way I see my exampl=
e could fulfill this requirement is add special token that is named `hack_t=
his_please` with oblivious functionality.<br>This at least would separate l=
egit use of private members (like serialization) and hack that are workarou=
nd of class limitations (like lack of support for serialization :) ).<br>Bu=
t this is in itself hack of my proposition.<br><br>On Friday, March 13, 201=
5 at 10:44:09 PM UTC+1, Ville Voutilainen wrote:<blockquote class=3D"gmail_=
quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;pa=
dding-left: 1ex;"><div dir=3D"ltr"><br><div><br><div class=3D"gmail_quote">=
On 13 March 2015 at 23:25,  <span dir=3D"ltr">&lt;<a href=3D"javascript:" t=
arget=3D"_blank" gdf-obfuscated-mailto=3D"xI5pk34Dt2gJ" rel=3D"nofollow" on=
mousedown=3D"this.href=3D'javascript:';return true;" onclick=3D"this.href=
=3D'javascript:';return true;">inkwizyt...@gmail.com</a>&gt;</span> wrote:<=
br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Do you know why people w=
as against this approach?</div></blockquote><div><br></div><div>There is a =
desire to use reflection on legacy types that would be infeasible<br></div>=
<div>to modify to contain such a token.<br>&nbsp;<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex"><div dir=3D"ltr"><div><div><br><br>On Friday, March 13, 2015=
 at 12:22:15 AM UTC+1, Cleiton Santoia wrote:<blockquote class=3D"gmail_quo=
te" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-=
left:1ex"><div dir=3D"ltr"><div><br></div><div><br></div><div><br></div><di=
v>&nbsp; &nbsp; In this document&nbsp;<a href=3D"http://random.m-ou.se/refl=
ectionfeedbackurbana.html" rel=3D"nofollow" target=3D"_blank" onmousedown=
=3D"this.href=3D'http://www.google.com/url?q\75http%3A%2F%2Frandom.m-ou.se%=
2Freflectionfeedbackurbana.html\46sa\75D\46sntz\0751\46usg\75AFQjCNFE655tqF=
ygttII-m54Ge_tnol1GA';return true;" onclick=3D"this.href=3D'http://www.goog=
le.com/url?q\75http%3A%2F%2Frandom.m-ou.se%2Freflectionfeedbackurbana.html\=
46sa\75D\46sntz\0751\46usg\75AFQjCNFE655tqFygttII-m54Ge_tnol1GA';return tru=
e;">http://random.m-ou.<u></u>se<wbr>/reflectionfeedbackurbana.<u></u>html<=
/a><wbr>&nbsp;you will find :<br></div><div><br></div><div><br></div><div><=
p style=3D"margin-left:4pc;margin-right:3pc;color:rgb(0,0,0);font-family:sa=
ns-serif;font-size:small;line-height:18.2000007629395px">Opt-in to unsafe r=
eflection from the class under reflection:</p><table style=3D"margin-left:a=
uto;margin-right:auto;border-collapse:collapse;color:rgb(0,0,0);font-family=
:sans-serif;font-size:small;line-height:18.2000007629395px"><thead><tr><th =
style=3D"text-align:center;font-weight:bold;border:1px solid rgb(211,211,21=
1);padding:4pt;background:rgb(238,238,238)" align=3D"left">SF</th><th style=
=3D"text-align:center;font-weight:bold;border:1px solid rgb(211,211,211);pa=
dding:4pt;background:rgb(238,238,238)" align=3D"left">F</th><th style=3D"te=
xt-align:center;font-weight:bold;border:1px solid rgb(211,211,211);padding:=
4pt;background:rgb(238,238,238)" align=3D"left">N</th><th style=3D"text-ali=
gn:center;font-weight:bold;border:1px solid rgb(211,211,211);padding:4pt;ba=
ckground:rgb(238,238,238)" align=3D"left">A</th><th style=3D"text-align:cen=
ter;font-weight:bold;border:1px solid rgb(211,211,211);padding:4pt;backgrou=
nd:rgb(238,238,238)" align=3D"left">SA</th></tr></thead><tbody><tr><td styl=
e=3D"border:1px solid rgb(211,211,211);padding:4pt" align=3D"left">5</td><t=
d style=3D"border:1px solid rgb(211,211,211);padding:4pt" align=3D"left">4<=
/td><td style=3D"border:1px solid rgb(211,211,211);padding:4pt" align=3D"le=
ft">3</td><td style=3D"border:1px solid rgb(211,211,211);padding:4pt" align=
=3D"left">10</td><td style=3D"border:1px solid rgb(211,211,211);padding:4pt=
" align=3D"left">2<br><br></td></tr></tbody></table></div><div><br></div><d=
iv><br>Em quinta-feira, 12 de mar=C3=A7o de 2015 19:46:29 UTC-3, <a>inkwizy=
t...@gmail.com</a>  escreveu:<blockquote class=3D"gmail_quote" style=3D"mar=
gin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div d=
ir=3D"ltr">I have idea of system that could be used of handling private dat=
a in reflection.<br><br>First one, we add new template<br><div style=3D"bac=
kground-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:s=
olid;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:#008">typename</span><span style=3D"color:#000"> T</span><span style=
=3D"color:#660">&gt;</span><span style=3D"color:#000"><br></span><span styl=
e=3D"color:#008">class</span><span style=3D"color:#000"> private_access_tok=
en<br></span><span style=3D"color:#660">{</span><span style=3D"color:#000">=
<br>&nbsp; &nbsp; </span><span style=3D"color:#008">using</span><span style=
=3D"color:#000"> type </span><span style=3D"color:#660">=3D</span><span sty=
le=3D"color:#000"> </span><span style=3D"color:#800">/* undefined */</span>=
<span style=3D"color:#660">;</span><span style=3D"color:#000"><br>&nbsp; &n=
bsp; </span><span style=3D"color:#008">friend</span><span style=3D"color:#0=
00"> T</span><span style=3D"color:#660">;</span><span style=3D"color:#000">=
<br></span><span style=3D"color:#660">};</span><span style=3D"color:#000"><=
br></span></div></code></div><br><br>And we add to `class_member::pointer` =
(like from n4113) new default parameter:<br><div style=3D"background-color:=
rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-wi=
dth:1px;word-wrap:break-word"><code><div><span style=3D"color:#008">templat=
e</span><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">ty=
pename</span><span style=3D"color:#000"> T</span><span style=3D"color:#660"=
>,</span><span style=3D"color:#000"> size_t I</span><span style=3D"color:#6=
60">,</span><span style=3D"color:#000"> token </span><span style=3D"color:#=
660">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#008=
">void</span><span style=3D"color:#660">&gt;</span><span style=3D"color:#00=
0"><br></span><span style=3D"color:#008">struct</span><span style=3D"color:=
#000"> pointer<br></span><span style=3D"color:#660">{</span><span style=3D"=
color:#000"><br></span><span style=3D"color:#008">private</span><span style=
=3D"color:#660">:</span><span style=3D"color:#000"> </span><span style=3D"c=
olor:#800">//this line depend if I'th member is private</span><span style=
=3D"color:#000"><br>&nbsp; &nbsp; </span><span style=3D"color:#008">constex=
pr</span><span style=3D"color:#000"> </span><span style=3D"color:#008">stat=
ic</span><span style=3D"color:#000"> </span><span style=3D"color:#606">Some=
Type</span><span style=3D"color:#000"> T</span><span style=3D"color:#660">:=
:*</span><span style=3D"color:#000"> value </span><span style=3D"color:#660=
">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#800">/=
* something */</span><span style=3D"color:#660">;</span><span style=3D"colo=
r:#000"><br>&nbsp; &nbsp; </span><span style=3D"color:#008">friend</span><s=
pan style=3D"color:#000"> T</span><span style=3D"color:#660">;</span><span =
style=3D"color:#000"><br></span><span style=3D"color:#660">};</span><span s=
tyle=3D"color:#000"><br><br></span><span style=3D"color:#008">template</spa=
n><span style=3D"color:#660">&lt;</span><span style=3D"color:#008">typename=
</span><span style=3D"color:#000"> T</span><span style=3D"color:#660">,</sp=
an><span style=3D"color:#000"> size_t I</span><span style=3D"color:#660">&g=
t;</span><span style=3D"color:#000"><br></span><span style=3D"color:#008">s=
truct</span><span style=3D"color:#000"> pointer</span><span style=3D"color:=
#660">&lt;</span><span style=3D"color:#000">T</span><span style=3D"color:#6=
60">,</span><span style=3D"color:#000"> I</span><span style=3D"color:#660">=
,</span><span style=3D"color:#000"> </span><span style=3D"color:#008">typen=
ame</span><span style=3D"color:#000"> private_access_token</span><span styl=
e=3D"color:#660">&lt;</span><span style=3D"color:#000">T</span><span style=
=3D"color:#660">&gt;::</span><span style=3D"color:#000">type </span><span s=
tyle=3D"color:#660">&gt;</span><span style=3D"color:#000"><br></span><span =
style=3D"color:#660">{</span><span style=3D"color:#000"><br></span><span st=
yle=3D"color:#008">public</span><span style=3D"color:#660">:</span><span st=
yle=3D"color:#000"> </span><span style=3D"color:#800">//always public with =
token</span><span style=3D"color:#000"><br>&nbsp; &nbsp; </span><span style=
=3D"color:#008">constexpr</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#008">static</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#606">SomeType</span><span style=3D"color:#000"> T</span><span=
 style=3D"color:#660">::*</span><span style=3D"color:#000"> value </span><s=
pan style=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span=
 style=3D"color:#800">/* something */</span><span style=3D"color:#660">;</s=
pan><span style=3D"color:#000"><br>&nbsp; &nbsp; </span><span style=3D"colo=
r:#008">friend</span><span style=3D"color:#000"> T</span><span style=3D"col=
or:#660">;</span><span style=3D"color:#000"><br></span><span style=3D"color=
:#660">};</span><span style=3D"color:#000"><br><br></span></div></code></di=
v><br><br><br>Thanks to that, class implementation can have control over pr=
ivate access and allow sharing it to third party libraries without exposing=
 private fields to the wild.<br>Some class designer could even allow every =
one using it by exposing type form token:<br><div style=3D"background-color=
:rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-w=
idth:1px;word-wrap:break-word"><code><div><span style=3D"color:#008">class<=
/span><span style=3D"color:#000"> A<br></span><span style=3D"color:#660">{<=
/span><span style=3D"color:#000"><br>&nbsp; &nbsp; </span><span style=3D"co=
lor:#008">int</span><span style=3D"color:#000"> a</span><span style=3D"colo=
r:#660">;</span><span style=3D"color:#000"><br></span><span style=3D"color:=
#008">public</span><span style=3D"color:#660">:</span><span style=3D"color:=
#000"><br>&nbsp; &nbsp; </span><span style=3D"color:#008">using</span><span=
 style=3D"color:#000"> </span><span style=3D"color:#606">PrivateToken</span=
><span style=3D"color:#000"> </span><span style=3D"color:#660">=3D</span><s=
pan style=3D"color:#000"> private_access_token</span><span style=3D"color:#=
660">&lt;</span><span style=3D"color:#000">A</span><span style=3D"color:#66=
0">&gt;::</span><span style=3D"color:#000">type</span><span style=3D"color:=
#660">;</span><span style=3D"color:#000"><br></span><span style=3D"color:#6=
60">};</span><span style=3D"color:#000"><br><br></span><span style=3D"color=
:#008">class</span><span style=3D"color:#000"> B<br></span><span style=3D"c=
olor:#660">{</span><span style=3D"color:#000"><br>&nbsp; &nbsp; </span><spa=
n style=3D"color:#008">int</span><span style=3D"color:#000"> a</span><span =
style=3D"color:#660">;</span><span style=3D"color:#000"><br>&nbsp; &nbsp; <=
/span><span style=3D"color:#008">int</span><span style=3D"color:#000"> b</s=
pan><span style=3D"color:#660">;</span><span style=3D"color:#000"><br></spa=
n><span style=3D"color:#008">public</span><span style=3D"color:#660">:</spa=
n><span style=3D"color:#000"><br>&nbsp; &nbsp; std</span><span style=3D"col=
or:#660">::</span><span style=3D"color:#008">string</span><span style=3D"co=
lor:#000"> to_string</span><span style=3D"color:#660">()</span><span style=
=3D"color:#000"> </span><span style=3D"color:#660">{</span><span style=3D"c=
olor:#000"> </span><span style=3D"color:#008">return</span><span style=3D"c=
olor:#000"> third_party_func</span><span style=3D"color:#660">&lt;</span><s=
pan style=3D"color:#000">private_<u></u>acces<wbr>s_token</span><span style=
=3D"color:#660">&lt;</span><span style=3D"color:#000">B</span><span style=
=3D"color:#660">&gt;::</span><span style=3D"color:#000">type</span><span st=
yle=3D"color:#660">&gt;(</span><span style=3D"color:#008">this</span><span =
style=3D"color:#660">);</span><span style=3D"color:#000"> </span><span styl=
e=3D"color:#660">}</span><span style=3D"color:#000"><br></span><span style=
=3D"color:#660">};</span><span style=3D"color:#000"><br><br></span></div></=
code></div><br><br>Do you think that could be good solution for that?<br><b=
r><br></div></blockquote></div></div></blockquote></div></div></div><div><d=
iv>

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
xI5pk34Dt2gJ" rel=3D"nofollow" onmousedown=3D"this.href=3D'javascript:';ret=
urn true;" onclick=3D"this.href=3D'javascript:';return true;">std-proposal.=
...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"xI5pk34Dt2gJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D'javascript:';return true;" onclick=3D"this.href=3D'javascript:=
';return true;">std-pr...@isocpp.org</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=
=3D'http://groups.google.com/a/isocpp.org/group/std-proposals/';return true=
;" onclick=3D"this.href=3D'http://groups.google.com/a/isocpp.org/group/std-=
proposals/';return true;">http://groups.google.com/a/<wbr>isocpp.org/group/=
std-<wbr>proposals/</a>.<br>
</div></div></blockquote></div><br></div></div>
</blockquote></div>

<p></p>

-- <br />
<br />
--- <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 />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_1015_1928476571.1426284558420--
------=_Part_1014_1779994983.1426284558420--

.
