Topic: Include file content as data at compile-time


Author: Sidney Congard <sidney.congard@gmail.com>
Date: Fri, 21 Sep 2018 02:15:15 -0700 (PDT)
Raw View
------=_Part_815_947459149.1537521315048
Content-Type: multipart/alternative;
 boundary="----=_Part_816_1591054611.1537521315048"

------=_Part_816_1591054611.1537521315048
Content-Type: text/plain; charset="UTF-8"

Hi,

I want to propose a new feature similar to what have already been discuted
here :
https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/b6ncBojU8wI%5B1-25%5D

Sorry if this proposal already exists or if other topics have been opened
about this
subject since then.

What do you think about it ?


Proposal

This proposal aims to allow to embed file data in the library or executable
built by
adding a new preprocessor command, behaving similarly to R"~( #include )~" :

// Content of <data/hello.txt> : 'Hello'

// Expands to a string literal. Equivalent to :
// constexpr char text[] = "Hello" "\0";
constexpr char text[] = __INCLUDE_TEXT(<data/hello.txt>) "\0";

// Expands to a char sequence. Equivalent to :
// constexpr uint8_t data[] = { 'H','e','l','l','o', };
constexpr uint8_t data[] = { __INCLUDE_DATA(<data/hello.txt>) };


Motivation

The use cases would mainly be :
  - to parse DSLs at compile-time (eg. with Boost.Metaparse).
  - to reduce dependencies and/or load time by incorporating files into the
library or
    executable built.

Several solutions exist to incorporate file content (resources or code)
into the target
built (for libraries or executables).

But, these solutions ether don't work at compile-time, are not fully
portable and/or
need to modify the build process (incbin, xxd, scripts for file
manipulation).


Tradeoffs

Performances could be improved if this proposal was integrated in the
langage, but
it does currently not have means to load files at compile-time AFAIK
whereas the
preprocessor has this with #include.

Two macro are proposed for conveniance, to manipulate string literal to
arrays.
Note the trailing coma for __INCLUDE_DATA : this syntax is less natural but
it
would allow embed empty files (which #include do).

Multi-byte types are not supported because of the endianness issue. It can
be
problematic to decode Unicode (apart UTF-8). 'std::byte' can't be
isntancied from
chars even if it can be the most suitable type to design raw bytes.

--
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/2314a9d2-9cc4-4054-ad3a-3e31a2094fc0%40isocpp.org.

------=_Part_816_1591054611.1537521315048
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<br><br>I want to propose a new feature similar to what=
 have already been discuted here :<br><a href=3D"https://groups.google.com/=
a/isocpp.org/forum/#!topic/std-proposals/b6ncBojU8wI%5B1-25%5D">https://gro=
ups.google.com/a/isocpp.org/forum/#!topic/std-proposals/b6ncBojU8wI%5B1-25%=
5D</a><br><br><div>Sorry if this proposal already exists or if other topics=
 have been opened about this</div><div>subject since then.<br></div><div><b=
r></div><div>What do you think about it ?<br></div><div><br></div><div><br>=
</div><div><font size=3D"4">Proposal</font><br></div><br><div>This proposal=
 aims to allow to embed file data in the library or executable built by</di=
v><div>adding a new preprocessor command, behaving similarly to R&quot;~( #=
include )~&quot; :</div><div><br></div><div style=3D"background-color: rgb(=
250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid; bord=
er-width: 1px; overflow-wrap: break-word;" class=3D"prettyprint"><code clas=
s=3D"prettyprint"><div class=3D"subprettyprint"><span style=3D"color: #800;=
" class=3D"styled-by-prettify">// Content of &lt;data/hello.txt&gt; : &#39;=
Hello&#39;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
<br><br></span><span style=3D"color: #800;" class=3D"styled-by-prettify">//=
 Expands to a string literal. Equivalent to :</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #800;" =
class=3D"styled-by-prettify">// constexpr char text[] =3D &quot;Hello&quot;=
 &quot;\0&quot;;</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"><br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">=
constexpr</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</span><span style=3D"color: #008;" class=3D"styled-by-prettify">char</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify"> text</span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">[]</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">=3D</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"> __INCLUDE_TEXT</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">(&lt;</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify">data</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">/</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify">hello</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">.</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
">txt</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&gt;)=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #080;" class=3D"styled-by-prettify">&quot;\0&quot;</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"><br><br></span><span sty=
le=3D"color: #800;" class=3D"styled-by-prettify">// Expands to a char seque=
nce. Equivalent to :</span><span style=3D"color: #000;" class=3D"styled-by-=
prettify"><br></span><span style=3D"color: #800;" class=3D"styled-by-pretti=
fy">// constexpr uint8_t data[] =3D { &#39;H&#39;,&#39;e&#39;,&#39;l&#39;,&=
#39;l&#39;,&#39;o&#39;, };</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"><br></span><span style=3D"color: #008;" class=3D"styled-by-=
prettify">constexpr</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> uint8_t data</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">[]</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> __INCLUDE_DATA</span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">(&lt;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify">data</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">/</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify">hello</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">.</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify">txt</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">&gt;)</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">};<=
/span></div></code></div><div><br></div><div><br></div><div><font size=3D"4=
">Motivation</font><br></div><div><br></div><div>The use cases would mainly=
 be :</div><div>=C2=A0 - to parse DSLs at compile-time (eg. with Boost.Meta=
parse).<br></div><div>=C2=A0 - to reduce dependencies and/or load time by i=
ncorporating files into the library or</div><div>=C2=A0=C2=A0=C2=A0 executa=
ble built.<br></div><div><br></div><div>Several solutions exist to incorpor=
ate file content (resources or code) into the target</div><div>built (for l=
ibraries or executables).<br><br>But, these solutions ether don&#39;t work =
at compile-time, are not fully portable and/or</div><div>need to modify the=
 build process (incbin, xxd, scripts for file manipulation).</div><div><br>=
</div><div><br></div><div><font size=3D"4">Tradeoffs</font></div><div><br><=
/div><div>Performances could be improved if this proposal was integrated in=
 the langage, but</div><div>it does currently not have means to load files =
at compile-time AFAIK whereas the</div><div>preprocessor has this with #inc=
lude.<br></div><div><br></div><div>Two macro are proposed for conveniance, =
to manipulate string literal to arrays.</div><div>Note the trailing coma fo=
r __INCLUDE_DATA : this syntax is less natural but it</div><div>would allow=
 embed empty files (which #include do).<br></div><div><br></div><div>Multi-=
byte types are not supported because of the endianness issue. It can be</di=
v><div>problematic to decode Unicode (apart UTF-8). &#39;std::byte&#39; can=
&#39;t be isntancied from</div><div>chars even if it can be the most suitab=
le type to design raw bytes.<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/2314a9d2-9cc4-4054-ad3a-3e31a2094fc0%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/2314a9d2-9cc4-4054-ad3a-3e31a2094fc0=
%40isocpp.org</a>.<br />

------=_Part_816_1591054611.1537521315048--

------=_Part_815_947459149.1537521315048--

.


Author: Richard Hodges <hodges.r@gmail.com>
Date: Fri, 21 Sep 2018 11:44:52 +0200
Raw View
--0000000000007601a605765e7e7f
Content-Type: text/plain; charset="UTF-8"

There have been a few times when I've wanted something like this. My
workaround was to use the configure_file feature of cmake.
Although this is a little unsatisfactory, as the debugger is then tracking
the wrong file.

Shouldn't this be a preprocessor feature rather than a language feature?

e.g.

const char text[] =
#include_quoted_ascii "data/hello.txt"
;

or even:

const std::u8string text =
#pragma include(file="data/hello.txt", encoding="utf-8", prefix="r\"",
postfix="\"")
;






On Fri, 21 Sep 2018 at 11:15, Sidney Congard <sidney.congard@gmail.com>
wrote:

> Hi,
>
> I want to propose a new feature similar to what have already been discuted
> here :
>
> https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/b6ncBojU8wI%5B1-25%5D
>
> Sorry if this proposal already exists or if other topics have been opened
> about this
> subject since then.
>
> What do you think about it ?
>
>
> Proposal
>
> This proposal aims to allow to embed file data in the library or
> executable built by
> adding a new preprocessor command, behaving similarly to R"~( #include )~"
> :
>
> // Content of <data/hello.txt> : 'Hello'
>
> // Expands to a string literal. Equivalent to :
> // constexpr char text[] = "Hello" "\0";
> constexpr char text[] = __INCLUDE_TEXT(<data/hello.txt>) "\0";
>
> // Expands to a char sequence. Equivalent to :
> // constexpr uint8_t data[] = { 'H','e','l','l','o', };
> constexpr uint8_t data[] = { __INCLUDE_DATA(<data/hello.txt>) };
>
>
> Motivation
>
> The use cases would mainly be :
>   - to parse DSLs at compile-time (eg. with Boost.Metaparse).
>   - to reduce dependencies and/or load time by incorporating files into
> the library or
>     executable built.
>
> Several solutions exist to incorporate file content (resources or code)
> into the target
> built (for libraries or executables).
>
> But, these solutions ether don't work at compile-time, are not fully
> portable and/or
> need to modify the build process (incbin, xxd, scripts for file
> manipulation).
>
>
> Tradeoffs
>
> Performances could be improved if this proposal was integrated in the
> langage, but
> it does currently not have means to load files at compile-time AFAIK
> whereas the
> preprocessor has this with #include.
>
> Two macro are proposed for conveniance, to manipulate string literal to
> arrays.
> Note the trailing coma for __INCLUDE_DATA : this syntax is less natural
> but it
> would allow embed empty files (which #include do).
>
> Multi-byte types are not supported because of the endianness issue. It can
> be
> problematic to decode Unicode (apart UTF-8). 'std::byte' can't be
> isntancied from
> chars even if it can be the most suitable type to design raw bytes.
>
> --
> 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/2314a9d2-9cc4-4054-ad3a-3e31a2094fc0%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/2314a9d2-9cc4-4054-ad3a-3e31a2094fc0%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>

--
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/CALvx3haGrqjjhU-iPQwKtrCTmPYvX8WEQBeD%3DNbdQUYXdkw%2BLA%40mail.gmail.com.

--0000000000007601a605765e7e7f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">There have been a few times when I&#39;ve wanted something=
 like this. My workaround was to use the configure_file feature of cmake.=
=C2=A0<div>Although this is a little unsatisfactory, as the debugger is the=
n tracking the wrong file.<div><br></div><div>Shouldn&#39;t this be a prepr=
ocessor feature rather than a language feature?</div><div><br></div><div>e.=
g.</div><div><br></div><div><font face=3D"monospace, monospace">const char =
text[] =3D=C2=A0</font></div><div><font face=3D"monospace, monospace">#incl=
ude_quoted_ascii &quot;data/hello.txt&quot;</font></div><div><font face=3D"=
monospace, monospace">;</font></div><div><br></div><div>or even:</div><div>=
<br></div><div><div><font face=3D"monospace, monospace">const std::u8string=
 text =3D=C2=A0</font></div><div><font face=3D"monospace, monospace">#pragm=
a include(file=3D&quot;data/hello.txt&quot;, encoding=3D&quot;utf-8&quot;, =
prefix=3D&quot;r\&quot;&quot;, postfix=3D&quot;\&quot;&quot;)</font></div><=
div><font face=3D"monospace, monospace">;</font></div><div><br></div><br cl=
ass=3D"gmail-Apple-interchange-newline"></div><div><br><div><br></div><div>=
<br></div></div></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr"=
>On Fri, 21 Sep 2018 at 11:15, Sidney Congard &lt;<a href=3D"mailto:sidney.=
congard@gmail.com">sidney.congard@gmail.com</a>&gt; wrote:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div dir=3D"ltr">Hi,<br><br>I want to propose a new=
 feature similar to what have already been discuted here :<br><a href=3D"ht=
tps://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/b6ncBojU8w=
I%5B1-25%5D" target=3D"_blank">https://groups.google.com/a/isocpp.org/forum=
/#!topic/std-proposals/b6ncBojU8wI%5B1-25%5D</a><br><br><div>Sorry if this =
proposal already exists or if other topics have been opened about this</div=
><div>subject since then.<br></div><div><br></div><div>What do you think ab=
out it ?<br></div><div><br></div><div><br></div><div><font size=3D"4">Propo=
sal</font><br></div><br><div>This proposal aims to allow to embed file data=
 in the library or executable built by</div><div>adding a new preprocessor =
command, behaving similarly to R&quot;~( #include )~&quot; :</div><div><br>=
</div><div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,=
187,187);border-style:solid;border-width:1px" class=3D"m_145230464895556298=
7prettyprint"><code class=3D"m_1452304648955562987prettyprint"><div class=
=3D"m_1452304648955562987subprettyprint"><span style=3D"color:#800" class=
=3D"m_1452304648955562987styled-by-prettify">// Content of &lt;data/hello.t=
xt&gt; : &#39;Hello&#39;</span><span style=3D"color:#000" class=3D"m_145230=
4648955562987styled-by-prettify"><br><br></span><span style=3D"color:#800" =
class=3D"m_1452304648955562987styled-by-prettify">// Expands to a string li=
teral. Equivalent to :</span><span style=3D"color:#000" class=3D"m_14523046=
48955562987styled-by-prettify"><br></span><span style=3D"color:#800" class=
=3D"m_1452304648955562987styled-by-prettify">// constexpr char text[] =3D &=
quot;Hello&quot; &quot;\0&quot;;</span><span style=3D"color:#000" class=3D"=
m_1452304648955562987styled-by-prettify"><br></span><span style=3D"color:#0=
08" class=3D"m_1452304648955562987styled-by-prettify">constexpr</span><span=
 style=3D"color:#000" class=3D"m_1452304648955562987styled-by-prettify"> </=
span><span style=3D"color:#008" class=3D"m_1452304648955562987styled-by-pre=
ttify">char</span><span style=3D"color:#000" class=3D"m_1452304648955562987=
styled-by-prettify"> text</span><span style=3D"color:#660" class=3D"m_14523=
04648955562987styled-by-prettify">[]</span><span style=3D"color:#000" class=
=3D"m_1452304648955562987styled-by-prettify"> </span><span style=3D"color:#=
660" class=3D"m_1452304648955562987styled-by-prettify">=3D</span><span styl=
e=3D"color:#000" class=3D"m_1452304648955562987styled-by-prettify"> __INCLU=
DE_TEXT</span><span style=3D"color:#660" class=3D"m_1452304648955562987styl=
ed-by-prettify">(&lt;</span><span style=3D"color:#000" class=3D"m_145230464=
8955562987styled-by-prettify">data</span><span style=3D"color:#660" class=
=3D"m_1452304648955562987styled-by-prettify">/</span><span style=3D"color:#=
000" class=3D"m_1452304648955562987styled-by-prettify">hello</span><span st=
yle=3D"color:#660" class=3D"m_1452304648955562987styled-by-prettify">.</spa=
n><span style=3D"color:#000" class=3D"m_1452304648955562987styled-by-pretti=
fy">txt</span><span style=3D"color:#660" class=3D"m_1452304648955562987styl=
ed-by-prettify">&gt;)</span><span style=3D"color:#000" class=3D"m_145230464=
8955562987styled-by-prettify"> </span><span style=3D"color:#080" class=3D"m=
_1452304648955562987styled-by-prettify">&quot;\0&quot;</span><span style=3D=
"color:#660" class=3D"m_1452304648955562987styled-by-prettify">;</span><spa=
n style=3D"color:#000" class=3D"m_1452304648955562987styled-by-prettify"><b=
r><br></span><span style=3D"color:#800" class=3D"m_1452304648955562987style=
d-by-prettify">// Expands to a char sequence. Equivalent to :</span><span s=
tyle=3D"color:#000" class=3D"m_1452304648955562987styled-by-prettify"><br><=
/span><span style=3D"color:#800" class=3D"m_1452304648955562987styled-by-pr=
ettify">// constexpr uint8_t data[] =3D { &#39;H&#39;,&#39;e&#39;,&#39;l&#3=
9;,&#39;l&#39;,&#39;o&#39;, };</span><span style=3D"color:#000" class=3D"m_=
1452304648955562987styled-by-prettify"><br></span><span style=3D"color:#008=
" class=3D"m_1452304648955562987styled-by-prettify">constexpr</span><span s=
tyle=3D"color:#000" class=3D"m_1452304648955562987styled-by-prettify"> uint=
8_t data</span><span style=3D"color:#660" class=3D"m_1452304648955562987sty=
led-by-prettify">[]</span><span style=3D"color:#000" class=3D"m_14523046489=
55562987styled-by-prettify"> </span><span style=3D"color:#660" class=3D"m_1=
452304648955562987styled-by-prettify">=3D</span><span style=3D"color:#000" =
class=3D"m_1452304648955562987styled-by-prettify"> </span><span style=3D"co=
lor:#660" class=3D"m_1452304648955562987styled-by-prettify">{</span><span s=
tyle=3D"color:#000" class=3D"m_1452304648955562987styled-by-prettify"> __IN=
CLUDE_DATA</span><span style=3D"color:#660" class=3D"m_1452304648955562987s=
tyled-by-prettify">(&lt;</span><span style=3D"color:#000" class=3D"m_145230=
4648955562987styled-by-prettify">data</span><span style=3D"color:#660" clas=
s=3D"m_1452304648955562987styled-by-prettify">/</span><span style=3D"color:=
#000" class=3D"m_1452304648955562987styled-by-prettify">hello</span><span s=
tyle=3D"color:#660" class=3D"m_1452304648955562987styled-by-prettify">.</sp=
an><span style=3D"color:#000" class=3D"m_1452304648955562987styled-by-prett=
ify">txt</span><span style=3D"color:#660" class=3D"m_1452304648955562987sty=
led-by-prettify">&gt;)</span><span style=3D"color:#000" class=3D"m_14523046=
48955562987styled-by-prettify"> </span><span style=3D"color:#660" class=3D"=
m_1452304648955562987styled-by-prettify">};</span></div></code></div><div><=
br></div><div><br></div><div><font size=3D"4">Motivation</font><br></div><d=
iv><br></div><div>The use cases would mainly be :</div><div>=C2=A0 - to par=
se DSLs at compile-time (eg. with Boost.Metaparse).<br></div><div>=C2=A0 - =
to reduce dependencies and/or load time by incorporating files into the lib=
rary or</div><div>=C2=A0=C2=A0=C2=A0 executable built.<br></div><div><br></=
div><div>Several solutions exist to incorporate file content (resources or =
code) into the target</div><div>built (for libraries or executables).<br><b=
r>But, these solutions ether don&#39;t work at compile-time, are not fully =
portable and/or</div><div>need to modify the build process (incbin, xxd, sc=
ripts for file manipulation).</div><div><br></div><div><br></div><div><font=
 size=3D"4">Tradeoffs</font></div><div><br></div><div>Performances could be=
 improved if this proposal was integrated in the langage, but</div><div>it =
does currently not have means to load files at compile-time AFAIK whereas t=
he</div><div>preprocessor has this with #include.<br></div><div><br></div><=
div>Two macro are proposed for conveniance, to manipulate string literal to=
 arrays.</div><div>Note the trailing coma for __INCLUDE_DATA : this syntax =
is less natural but it</div><div>would allow embed empty files (which #incl=
ude do).<br></div><div><br></div><div>Multi-byte types are not supported be=
cause of the endianness issue. It can be</div><div>problematic to decode Un=
icode (apart UTF-8). &#39;std::byte&#39; can&#39;t be isntancied from</div>=
<div>chars even if it can be the most suitable type to design raw bytes.<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" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">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/2314a9d2-9cc4-4054-ad3a-3e31a2094fc0%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/2314a9d2-9cc4-=
4054-ad3a-3e31a2094fc0%40isocpp.org</a>.<br>
</blockquote></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/CALvx3haGrqjjhU-iPQwKtrCTmPYvX8WEQBeD=
%3DNbdQUYXdkw%2BLA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CALvx3haGrqjj=
hU-iPQwKtrCTmPYvX8WEQBeD%3DNbdQUYXdkw%2BLA%40mail.gmail.com</a>.<br />

--0000000000007601a605765e7e7f--

.


Author: =?UTF-8?Q?Klaim_=2D_Jo=C3=ABl_Lamotte?= <mjklaim@gmail.com>
Date: Fri, 21 Sep 2018 12:05:40 +0200
Raw View
See std::embed() proposal:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1040r1.html
On Fri, 21 Sep 2018 at 11:45, Richard Hodges <hodges.r@gmail.com> wrote:
>
> There have been a few times when I've wanted something like this. My workaround was to use the configure_file feature of cmake.
> Although this is a little unsatisfactory, as the debugger is then tracking the wrong file.
>
> Shouldn't this be a preprocessor feature rather than a language feature?
>
> e.g.
>
> const char text[] =
> #include_quoted_ascii "data/hello.txt"
> ;
>
> or even:
>
> const std::u8string text =
> #pragma include(file="data/hello.txt", encoding="utf-8", prefix="r\"", postfix="\"")
> ;
>
>
>
>
>
>
> On Fri, 21 Sep 2018 at 11:15, Sidney Congard <sidney.congard@gmail.com> wrote:
>>
>> Hi,
>>
>> I want to propose a new feature similar to what have already been discuted here :
>> https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/b6ncBojU8wI%5B1-25%5D
>>
>> Sorry if this proposal already exists or if other topics have been opened about this
>> subject since then.
>>
>> What do you think about it ?
>>
>>
>> Proposal
>>
>> This proposal aims to allow to embed file data in the library or executable built by
>> adding a new preprocessor command, behaving similarly to R"~( #include )~" :
>>
>> // Content of <data/hello.txt> : 'Hello'
>>
>> // Expands to a string literal. Equivalent to :
>> // constexpr char text[] = "Hello" "\0";
>> constexpr char text[] = __INCLUDE_TEXT(<data/hello.txt>) "\0";
>>
>> // Expands to a char sequence. Equivalent to :
>> // constexpr uint8_t data[] = { 'H','e','l','l','o', };
>> constexpr uint8_t data[] = { __INCLUDE_DATA(<data/hello.txt>) };
>>
>>
>> Motivation
>>
>> The use cases would mainly be :
>>   - to parse DSLs at compile-time (eg. with Boost.Metaparse).
>>   - to reduce dependencies and/or load time by incorporating files into the library or
>>     executable built.
>>
>> Several solutions exist to incorporate file content (resources or code) into the target
>> built (for libraries or executables).
>>
>> But, these solutions ether don't work at compile-time, are not fully portable and/or
>> need to modify the build process (incbin, xxd, scripts for file manipulation).
>>
>>
>> Tradeoffs
>>
>> Performances could be improved if this proposal was integrated in the langage, but
>> it does currently not have means to load files at compile-time AFAIK whereas the
>> preprocessor has this with #include.
>>
>> Two macro are proposed for conveniance, to manipulate string literal to arrays.
>> Note the trailing coma for __INCLUDE_DATA : this syntax is less natural but it
>> would allow embed empty files (which #include do).
>>
>> Multi-byte types are not supported because of the endianness issue. It can be
>> problematic to decode Unicode (apart UTF-8). 'std::byte' can't be isntancied from
>> chars even if it can be the most suitable type to design raw bytes.
>>
>> --
>> 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/2314a9d2-9cc4-4054-ad3a-3e31a2094fc0%40isocpp.org.
>
> --
> 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/CALvx3haGrqjjhU-iPQwKtrCTmPYvX8WEQBeD%3DNbdQUYXdkw%2BLA%40mail.gmail.com.

--
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/CAOU91OO72oyHnmmMGqzX%3DyxZZ4_-08hQNG%2B5Pj45HJ7fkjuseg%40mail.gmail.com.

.


Author: Sidney Congard <sidney.congard@gmail.com>
Date: Fri, 21 Sep 2018 03:13:37 -0700 (PDT)
Raw View
------=_Part_744_1399860528.1537524817313
Content-Type: multipart/alternative;
 boundary="----=_Part_745_461897207.1537524817313"

------=_Part_745_461897207.1537524817313
Content-Type: text/plain; charset="UTF-8"


>
> Shouldn't this be a preprocessor feature rather than a language feature?
>

I see it as a preprocessor feature, it's just that I found the macro syntax
more friendly.

See std::embed() proposal
>

Wow, this is pretty much exactly what I wanted !
Just a question, how can we load a file from the include directories ?
eg. <hello.txt> vs "hello.txt".

--
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/a8f6c67f-af37-4a00-a8cf-5354a949c7d3%40isocpp.org.

------=_Part_745_461897207.1537524817313
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px=
 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">=
Shouldn&#39;t this be a preprocessor feature rather than a language feature=
?<br></blockquote><div><br></div><div>I see it as a preprocessor feature, i=
t&#39;s just that I found the macro syntax more friendly.<br></div><div><br=
></div><blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex=
; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">See std::e=
mbed() proposal<br></blockquote><br>Wow, this is pretty much exactly what I=
 wanted !<br>Just a question, how can we load a file from the include direc=
tories ?<br>eg. &lt;hello.txt&gt; vs &quot;hello.txt&quot;.<br><br></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/a8f6c67f-af37-4a00-a8cf-5354a949c7d3%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/a8f6c67f-af37-4a00-a8cf-5354a949c7d3=
%40isocpp.org</a>.<br />

------=_Part_745_461897207.1537524817313--

------=_Part_744_1399860528.1537524817313--

.


Author: Furkan Usta <furkanusta17@gmail.com>
Date: Fri, 21 Sep 2018 14:17:45 +0300
Raw View
--0000000000001b2f6c05765fcc46
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

>
> Just a question, how can we load a file from the include directories ?
>
Near the end there is a questions section:

What is the lookup scheme for files and other resources?

Implementation defined. We expect compilers to expose an option similar to
--embed-paths=3D..., /EMBEDPATH:..., or whatever tickles the implementer=E2=
=80=99s
fancy. (LEWG confirmed.)

Sidney Congard <sidney.congard@gmail.com>, 21 Eyl 2018 Cum, 13:13 tarihinde
=C5=9Funu yazd=C4=B1:

> Shouldn't this be a preprocessor feature rather than a language feature?
>>
>
> I see it as a preprocessor feature, it's just that I found the macro
> syntax more friendly.
>
> See std::embed() proposal
>>
>
> Wow, this is pretty much exactly what I wanted !
> Just a question, how can we load a file from the include directories ?
> eg. <hello.txt> vs "hello.txt".
>
> --
> 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/a8f6c67f-af3=
7-4a00-a8cf-5354a949c7d3%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/a8f6c67f-af=
37-4a00-a8cf-5354a949c7d3%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoot=
er>
> .
>

--=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/CA%2BThi2uZo1buVDxiknK4h1r5MEtSPh3Ln7pvdJpFxHW78=
DtYvw%40mail.gmail.com.

--0000000000001b2f6c05765fcc46
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p>Just =
a question, how can we load a file from the include directories ?</p></bloc=
kquote><div>Near the end there is a questions section:</div><div> <br></div=
><p>What is the lookup scheme for files and other resources?</p><p>Implemen=
tation defined. We expect compilers to expose an option similar to <code cl=
ass=3D"gmail-highlight"><span class=3D"gmail-o">--</span><span class=3D"gma=
il-n">embed</span><span class=3D"gmail-o">-</span><span class=3D"gmail-n">p=
aths</span><span class=3D"gmail-o">=3D</span><span class=3D"gmail-p">...</s=
pan></code>, <code class=3D"gmail-highlight"><span class=3D"gmail-o">/</spa=
n><span class=3D"gmail-nl">EMBEDPATH</span><span class=3D"gmail-p">:...</sp=
an></code>, or whatever tickles the implementer=E2=80=99s fancy. (LEWG conf=
irmed.) <br></p>
   </div><br><div class=3D"gmail_quote"><div dir=3D"ltr">Sidney Congard &lt=
;<a href=3D"mailto:sidney.congard@gmail.com">sidney.congard@gmail.com</a>&g=
t;, 21 Eyl 2018 Cum, 13:13 tarihinde =C5=9Funu yazd=C4=B1:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div dir=3D"ltr"><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa=
dding-left:1ex">Shouldn&#39;t this be a preprocessor feature rather than a =
language feature?<br></blockquote><div><br></div><div>I see it as a preproc=
essor feature, it&#39;s just that I found the macro syntax more friendly.<b=
r></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Se=
e std::embed() proposal<br></blockquote><br>Wow, this is pretty much exactl=
y what I wanted !<br>Just a question, how can we load a file from the inclu=
de directories ?<br>eg. &lt;hello.txt&gt; vs &quot;hello.txt&quot;.<br><br>=
</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" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">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/a8f6c67f-af37-4a00-a8cf-5354a949c7d3%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/a8f6c67f-af37-=
4a00-a8cf-5354a949c7d3%40isocpp.org</a>.<br>
</blockquote></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/CA%2BThi2uZo1buVDxiknK4h1r5MEtSPh3Ln7=
pvdJpFxHW78DtYvw%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CA%2BThi2uZo1bu=
VDxiknK4h1r5MEtSPh3Ln7pvdJpFxHW78DtYvw%40mail.gmail.com</a>.<br />

--0000000000001b2f6c05765fcc46--

.


Author: Sidney Congard <sidney.congard@gmail.com>
Date: Fri, 21 Sep 2018 04:29:49 -0700 (PDT)
Raw View
------=_Part_178_1653351238.1537529389527
Content-Type: multipart/alternative;
 boundary="----=_Part_179_2062482921.1537529389527"

------=_Part_179_2062482921.1537529389527
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable


>
> Near the end there is a questions section:
>
> What is the lookup scheme for files and other resources?
>
> Implementation defined. We expect compilers to expose an option similar t=
o=20
> --embed-paths=3D..., /EMBEDPATH:..., or whatever tickles the implementer=
=E2=80=99s=20
> fancy. (LEWG confirmed.)=20
>

Thank you !

--=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/63882ee2-cb20-4b66-be18-fd244f684d2c%40isocpp.or=
g.

------=_Part_179_2062482921.1537529389527
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<span class=3D"im"></span><blockquote class=3D"gmail_quote" style=3D"margin=
: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-lef=
t: 1ex;"><div>Near the end there is a questions section:</div><div> <br></d=
iv><p>What is the lookup scheme for files and other resources?</p><p>Implem=
entation defined. We expect compilers to expose an option similar to <code =
class=3D"m_-8840710670126993320gmail-highlight"><span class=3D"m_-884071067=
0126993320gmail-o">--</span><span class=3D"m_-8840710670126993320gmail-n">e=
mbed</span><span class=3D"m_-8840710670126993320gmail-o">-</span><span clas=
s=3D"m_-8840710670126993320gmail-n">paths</span><span class=3D"m_-884071067=
0126993320gmail-o">=3D</span><span class=3D"m_-8840710670126993320gmail-p">=
....</span></code>, <code class=3D"m_-8840710670126993320gmail-highlight"><s=
pan class=3D"m_-8840710670126993320gmail-o">/</span><span class=3D"m_-88407=
10670126993320gmail-nl">EMBEDPATH</span><span class=3D"m_-88407106701269933=
20gmail-p">:...</span></code>, or whatever tickles the implementer=E2=80=99=
s fancy. (LEWG confirmed.) </p></blockquote><div><br></div><div>Thank you !=
<br></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/63882ee2-cb20-4b66-be18-fd244f684d2c%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/63882ee2-cb20-4b66-be18-fd244f684d2c=
%40isocpp.org</a>.<br />

------=_Part_179_2062482921.1537529389527--

------=_Part_178_1653351238.1537529389527--

.


Author: Jakob Riedle <jakob.riedle@gmail.com>
Date: Fri, 28 Sep 2018 04:13:37 -0700 (PDT)
Raw View
------=_Part_307_1222003021.1538133218028
Content-Type: multipart/alternative;
 boundary="----=_Part_308_1317543102.1538133218029"

------=_Part_308_1317543102.1538133218029
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I remember, there used to be a string suffix f (as in "hello.txt"*f)* to=20
convert the contents of a file (e.g. "hello.txt") into a string literal.
If that proposal is istill active, this would by my personal favourite.

Am Freitag, 21. September 2018 13:29:49 UTC+2 schrieb Sidney Congard:
>
> Near the end there is a questions section:
>>
>> What is the lookup scheme for files and other resources?
>>
>> Implementation defined. We expect compilers to expose an option similar=
=20
>> to --embed-paths=3D..., /EMBEDPATH:..., or whatever tickles the=20
>> implementer=E2=80=99s fancy. (LEWG confirmed.)=20
>>
>
> Thank you !
>

--=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/3c79818c-f577-401d-a353-916beeb0b389%40isocpp.or=
g.

------=_Part_308_1317543102.1538133218029
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I remember, there used to be a string suffix f (as in &quo=
t;hello.txt&quot;<b>f)</b>=C2=A0to convert the contents of a file (e.g. &qu=
ot;hello.txt&quot;) into a string literal.<div>If that proposal is istill a=
ctive, this would by my personal favourite.</div><div><div><div><br>Am Frei=
tag, 21. September 2018 13:29:49 UTC+2 schrieb Sidney Congard:<blockquote c=
lass=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px=
 #ccc solid;padding-left: 1ex;"><span></span><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex"><div>Near the end there is a questions section:</div><d=
iv> <br></div><p>What is the lookup scheme for files and other resources?</=
p><p>Implementation defined. We expect compilers to expose an option simila=
r to <code><span>--</span><span>embed</span><span>-</span><span>paths</span=
><span>=3D</span><span>...</span></code>, <code><span>/</span><span>EMBEDPA=
TH</span><span>:...</span></code>, or whatever tickles the implementer=E2=
=80=99s fancy. (LEWG confirmed.) </p></blockquote><div><br></div><div>Thank=
 you !<br></div></blockquote></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/3c79818c-f577-401d-a353-916beeb0b389%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/3c79818c-f577-401d-a353-916beeb0b389=
%40isocpp.org</a>.<br />

------=_Part_308_1317543102.1538133218029--

------=_Part_307_1222003021.1538133218028--

.