Topic: Mapping enum to multilanguage strings
Author: Mariusz Moczala <mmoczala@gmail.com>
Date: Tue, 26 Jul 2016 10:03:31 -0700 (PDT)
Raw View
------=_Part_320_1318306024.1469552611556
Content-Type: multipart/alternative;
boundary="----=_Part_321_426734428.1469552611562"
------=_Part_321_426734428.1469552611562
Content-Type: text/plain; charset=UTF-8
Hello everyone,
Could you tell me please what do you think about the C++ language extension
described in blue comment below?
Is something similar already available in some version of C++?
Many thanks,
Mariusz
*enum class* Translation {
menuFile,
menuFileNew,
menuFileOpen,
menuFileSave,
menuFileSaveAs,
// ...
};
*const char* *translationEnUs[Translation] = { // Reading from enum type
returns maximal value held by the enum (4 in this case)
Translation::menuFile : "&File",
Translation::menuFileNew : "&New", // This is a special syntax,
that does not require to use ordered keys (indices)
Translation::menuFileOpen : "&Open...",
Translation::menuFileSave : "&Save",
Translation::menuFileSaveAs : "S&ave as...",
// ...
};
*const char* *translationPlPl[Translation] = {
[Translation::menuFile] = "&Plik",
[Translation::menuFileNew] = "&Nowy", // Or maybe this way is more
in C++ style?
[Translation::menuFileOpen] = "&Otworz...",
[Translation::menuFileSave] = "&Zapisz",
[Translation::menuFileSaveAs] = "Z&apisz jako...",
// ...
};
// ...
*enum class* Language {
enUs,
plPl,
// ...
};
*const char* **translations[Language] = {
translationEnUs,
translationPlPl,
// ...
};
// ...
Language language = Language::enUs;
// ...
*int* languageId = *static_cast*<*int*>(language);
*int* translationId = *static_cast*<*int*>(Translation::menuFileNew);
*const char* *text = translations[languageId][translationId];
menuFileNew.setText(text);
--
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/0f801531-bfdb-49b5-a8f5-d5ffffbfcfc7%40isocpp.org.
------=_Part_321_426734428.1469552611562
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>Hello everyone,</div><div><br></div><div>Could you te=
ll me please what do you think about the C++ language extension described i=
n <font color=3D"#0000ff">blue </font>comment below?</div><div>Is something=
similar already available in some version of C++?</div><div><br></div><div=
>Many thanks,</div><div>Mariusz</div><div><br></div><div><br></div><div><fo=
nt face=3D"courier new, monospace"><b>enum class</b> Translation {<br></fon=
t></div><div><font face=3D"courier new, monospace">=C2=A0 menuFile,</font><=
/div><div><font face=3D"courier new, monospace">=C2=A0 menuFileNew,</font><=
/div><div><font face=3D"courier new, monospace">=C2=A0 menuFileOpen,</font>=
</div><div><font face=3D"courier new, monospace">=C2=A0 menuFileSave,</font=
></div><div><font face=3D"courier new, monospace">=C2=A0 menuFileSaveAs,</f=
ont></div><div><font face=3D"courier new, monospace"><br></font></div><div>=
<font face=3D"courier new, monospace">=C2=A0 // ...</font></div><div><font =
face=3D"courier new, monospace">};</font></div><div><font face=3D"courier n=
ew, monospace"><br></font></div><div><font face=3D"courier new, monospace">=
<b>const char</b> *translationEnUs[Translation] =3D { <font color=3D"#0000f=
f">// Reading from enum type returns maximal value held by the enum (4 in t=
his case)</font></font></div><div><font face=3D"courier new, monospace">=C2=
=A0 Translation::menuFile : "&File",</font></div><div><font f=
ace=3D"courier new, monospace">=C2=A0 Translation::menuFileNew : "&=
;New", =C2=A0 =C2=A0 =C2=A0 =C2=A0 <font color=3D"#0000ff">// This is =
a special syntax, that does not require to use ordered keys (indices)</font=
></font></div><div><font face=3D"courier new, monospace">=C2=A0 Translation=
::menuFileOpen : "&Open...",</font></div><div><font face=3D"c=
ourier new, monospace">=C2=A0 Translation::menuFileSave : "&Save&q=
uot;,</font></div><div><font face=3D"courier new, monospace">=C2=A0 Transla=
tion::menuFileSaveAs : "S&ave as...",</font></div><div><font =
face=3D"courier new, monospace"><br></font></div><div><font face=3D"courier=
new, monospace">=C2=A0 // ...</font></div><div><font face=3D"courier new, =
monospace">};</font></div><div><font face=3D"courier new, monospace"><br></=
font></div><div><font face=3D"courier new, monospace"><b>const char</b> *tr=
anslationPlPl[Translation] =3D {</font></div><div><font face=3D"courier new=
, monospace">=C2=A0 [Translation::menuFile] =3D "&Plik",</fon=
t></div><div><font face=3D"courier new, monospace">=C2=A0 [Translation::men=
uFileNew] =3D "&Nowy",</font><span style=3D"font-family: &quo=
t;courier new", monospace;">=C2=A0 =C2=A0 =C2=A0=C2=A0</span><font col=
or=3D"#0000ff" style=3D"font-family: "courier new", monospace;">/=
/ Or maybe this way is more in C++ style?</font></div><div><font face=3D"co=
urier new, monospace">=C2=A0 [Translation::menuFileOpen] =3D "&Otw=
orz...",</font></div><div><font face=3D"courier new, monospace">=C2=A0=
[Translation::menuFileSave] =3D "&Zapisz",</font></div><div>=
<font face=3D"courier new, monospace">=C2=A0 [Translation::menuFileSaveAs] =
=3D "Z&apisz jako...",</font></div><div><font face=3D"courier=
new, monospace"><br></font></div><div><font face=3D"courier new, monospace=
">=C2=A0 // ...</font></div><div><font face=3D"courier new, monospace">};</=
font></div><div><font face=3D"courier new, monospace"><br></font></div><div=
><font face=3D"courier new, monospace">// ...</font></div><div><font face=
=3D"courier new, monospace"><br></font></div><div><font face=3D"courier new=
, monospace"><b>enum class</b> Language {</font></div><div><font face=3D"co=
urier new, monospace">=C2=A0 enUs,</font></div><div><font face=3D"courier n=
ew, monospace">=C2=A0 plPl,</font></div><div><font face=3D"courier new, mon=
ospace"><br></font></div><div><font face=3D"courier new, monospace">=C2=A0 =
// ...</font></div><div><font face=3D"courier new, monospace">};</font></di=
v><div><font face=3D"courier new, monospace"><br></font></div><div><font fa=
ce=3D"courier new, monospace"><b>const char</b> **translations[Language] =
=3D {</font></div><div><font face=3D"courier new, monospace">=C2=A0 transla=
tionEnUs,</font></div><div><font face=3D"courier new, monospace">=C2=A0 tra=
nslationPlPl,</font></div><div><font face=3D"courier new, monospace"><br></=
font></div><div><font face=3D"courier new, monospace">=C2=A0 // ...</font><=
/div><div><font face=3D"courier new, monospace">};</font></div><div><font f=
ace=3D"courier new, monospace"><br></font></div><div><font face=3D"courier =
new, monospace">// ...</font></div><div><font face=3D"courier new, monospac=
e"><br></font></div><div><font face=3D"courier new, monospace">Language lan=
guage =3D Language::enUs;</font></div><div><font face=3D"courier new, monos=
pace"><br></font></div><div><font face=3D"courier new, monospace">// ...</f=
ont></div><div><font face=3D"courier new, monospace"><br></font></div><div>=
<font face=3D"courier new, monospace"><b>int</b> languageId =3D <b>static_c=
ast</b><<b>int</b>>(language);</font></div><div><font face=3D"courier=
new, monospace"><b>int</b> translationId =3D <b>static_cast</b><<b>int<=
/b>>(Translation::menuFileNew);</font></div><div><font face=3D"courier n=
ew, monospace"><b>const char</b> *text =3D translations[languageId][transla=
tionId];</font></div><div><font face=3D"courier new, monospace">menuFileNew=
..setText(text);</font></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;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"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/0f801531-bfdb-49b5-a8f5-d5ffffbfcfc7%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/0f801531-bfdb-49b5-a8f5-d5ffffbfcfc7=
%40isocpp.org</a>.<br />
------=_Part_321_426734428.1469552611562--
------=_Part_320_1318306024.1469552611556--
.
Author: Simon Brand <simon@codeplay.com>
Date: Tue, 26 Jul 2016 18:34:59 +0100
Raw View
This is a multi-part message in MIME format.
--------------FD81D1087A0EB6E17D8A9E23
Content-Type: text/plain; charset=UTF-8; format=flowed
Hi Mariusz,
I don't think a language extension is necessary for this. You could just
use a map type or an array indexed by the underlying enumeration value.
For example:
enum class Translation {
menuFile,
menuFileNew,
};
std::map<Translation, const char*> translationEnUs {
{Translation::menuFile, "&File"},
{Translation::menuFileNew, "&New"},
};
std::map<Translation, const char*> translationPlPl {
{Translation::menuFile, "&Plik"},
{Translation::menuFileNew, "&Nowy"},
};
enum class Language {
enUs,
plPl
};
std::map<Language,std::map<Translation, const char*>*> translations {
{Language::enUs, &translationEnUs},
{Language::plPl, &translationPlPl}
};
int main() {
Language language = Language::plPl;
std::cout << (*translations[language])[Translation::menuFileNew];
}
There are a bunch of changes you could make depending on your
requirements, like using std::unordered_map, storing
std::reference_wrappers instead of pointers, etc.
Thanks,
Simon
On 26/07/2016 18:03, Mariusz Moczala wrote:
> Hello everyone,
>
> Could you tell me please what do you think about the C++ language
> extension described in blue comment below?
> Is something similar already available in some version of C++?
>
> Many thanks,
> Mariusz
>
>
> *enum class* Translation {
> menuFile,
> menuFileNew,
> menuFileOpen,
> menuFileSave,
> menuFileSaveAs,
>
> // ...
> };
>
> *const char* *translationEnUs[Translation] = { // Reading from enum
> type returns maximal value held by the enum (4 in this case)
> Translation::menuFile : "&File",
> Translation::menuFileNew : "&New", // This is a special syntax, that
> does not require to use ordered keys (indices)
> Translation::menuFileOpen : "&Open...",
> Translation::menuFileSave : "&Save",
> Translation::menuFileSaveAs : "S&ave as...",
>
> // ...
> };
>
> *const char* *translationPlPl[Translation] = {
> [Translation::menuFile] = "&Plik",
> [Translation::menuFileNew] = "&Nowy",// Or maybe this way is more in
> C++ style?
> [Translation::menuFileOpen] = "&Otworz...",
> [Translation::menuFileSave] = "&Zapisz",
> [Translation::menuFileSaveAs] = "Z&apisz jako...",
>
> // ...
> };
>
> // ...
>
> *enum class* Language {
> enUs,
> plPl,
>
> // ...
> };
>
> *const char* **translations[Language] = {
> translationEnUs,
> translationPlPl,
>
> // ...
> };
>
> // ...
>
> Language language = Language::enUs;
>
> // ...
>
> *int* languageId = *static_cast*<*int*>(language);
> *int* translationId = *static_cast*<*int*>(Translation::menuFileNew);
> *const char* *text = translations[languageId][translationId];
> menuFileNew.setText(text);
> --
> 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
> <mailto:std-proposals+unsubscribe@isocpp.org>.
> To post to this group, send email to std-proposals@isocpp.org
> <mailto:std-proposals@isocpp.org>.
> To view this discussion on the web visit
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0f801531-bfdb-49b5-a8f5-d5ffffbfcfc7%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0f801531-bfdb-49b5-a8f5-d5ffffbfcfc7%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/a5fd12a8-10a9-4490-ed77-c1c75fc5ffd4%40codeplay.com.
--------------FD81D1087A0EB6E17D8A9E23
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type=
">
</head>
<body bgcolor=3D"#FFFFFF" text=3D"#000000">
<p>Hi Mariusz,</p>
<p>I don't think a language extension is necessary for this. You
could just use a map type or an array indexed by the underlying
enumeration value.<br>
</p>
For example:<br>
<br>
<tt>enum class Translation {</tt><tt><br>
</tt><tt>=C2=A0 menuFile,</tt><tt><br>
</tt><tt>=C2=A0 menuFileNew,</tt><tt><br>
</tt><tt>};</tt><tt><br>
</tt><tt><br>
</tt><tt>std::map<Translation, const char*> translationEnUs {</tt=
><tt><br>
</tt><tt>=C2=A0 {Translation::menuFile, "&File"},</tt><tt><br>
</tt><tt>=C2=A0 {Translation::menuFileNew, "&New"},</tt><tt><br>
</tt><tt>};</tt><tt><br>
</tt><tt><br>
</tt><tt>std::map<Translation, const char*> translationPlPl {</tt=
><tt><br>
</tt><tt>=C2=A0 {Translation::menuFile, "&Plik"},</tt><tt><br>
</tt><tt>=C2=A0 {Translation::menuFileNew, "&Nowy"},</tt><tt><br>
</tt><tt>};</tt><tt><br>
</tt><tt><br>
</tt><tt>enum class Language {</tt><tt><br>
</tt><tt>=C2=A0 enUs,</tt><tt><br>
</tt><tt>=C2=A0 plPl</tt><tt><br>
</tt><tt>};</tt><tt><br>
</tt><tt><br>
</tt><tt>std::map<Language,std::map<Translation, const
char*>*> translations {</tt><tt><br>
</tt><tt>=C2=A0 {Language::enUs, &translationEnUs},</tt><tt><br>
</tt><tt>=C2=A0 {Language::plPl, &translationPlPl}</tt><tt><br>
</tt><tt>};</tt><tt><br>
</tt><tt><br>
</tt><tt><br>
</tt><tt>int main() {</tt><tt><br>
</tt><tt>=C2=A0=C2=A0=C2=A0 Language language =3D Language::plPl;</tt><=
tt><br>
</tt><tt>=C2=A0=C2=A0=C2=A0 std::cout <<
(*translations[language])[Translation::menuFileNew];</tt><tt><br>
</tt><tt>}</tt><br>
<br>
There are a bunch of changes you could make depending on your
requirements, like using <tt>std::unordered_map,</tt> storing <tt>std::=
reference_wrapper</tt>s
instead of pointers, etc.<br>
<br>
Thanks,<br>
Simon<br>
<br>
<div class=3D"moz-cite-prefix">On 26/07/2016 18:03, Mariusz Moczala
wrote:<br>
</div>
<blockquote
cite=3D"mid:0f801531-bfdb-49b5-a8f5-d5ffffbfcfc7@isocpp.org"
type=3D"cite">
<div dir=3D"ltr">
<div>Hello everyone,</div>
<div><br>
</div>
<div>Could you tell me please what do you think about the C++
language extension described in <font color=3D"#0000ff">blue </fo=
nt>comment
below?</div>
<div>Is something similar already available in some version of
C++?</div>
<div><br>
</div>
<div>Many thanks,</div>
<div>Mariusz</div>
<div><br>
</div>
<div><br>
</div>
<div><font face=3D"courier new, monospace"><b>enum class</b>
Translation {<br>
</font></div>
<div><font face=3D"courier new, monospace">=C2=A0 menuFile,</font><=
/div>
<div><font face=3D"courier new, monospace">=C2=A0 menuFileNew,</fon=
t></div>
<div><font face=3D"courier new, monospace">=C2=A0 menuFileOpen,</fo=
nt></div>
<div><font face=3D"courier new, monospace">=C2=A0 menuFileSave,</fo=
nt></div>
<div><font face=3D"courier new, monospace">=C2=A0 menuFileSaveAs,</=
font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">=C2=A0 // ...</font></di=
v>
<div><font face=3D"courier new, monospace">};</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace"><b>const char</b>
*translationEnUs[Translation] =3D { <font color=3D"#0000ff">//
Reading from enum type returns maximal value held by the
enum (4 in this case)</font></font></div>
<div><font face=3D"courier new, monospace">=C2=A0 Translation::menu=
File
: "&File",</font></div>
<div><font face=3D"courier new, monospace">=C2=A0
Translation::menuFileNew : "&New", =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 <font
color=3D"#0000ff">// This is a special syntax, that does not
require to use ordered keys (indices)</font></font></div>
<div><font face=3D"courier new, monospace">=C2=A0
Translation::menuFileOpen : "&Open...",</font></div>
<div><font face=3D"courier new, monospace">=C2=A0
Translation::menuFileSave : "&Save",</font></div>
<div><font face=3D"courier new, monospace">=C2=A0
Translation::menuFileSaveAs : "S&ave as...",</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">=C2=A0 // ...</font></di=
v>
<div><font face=3D"courier new, monospace">};</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace"><b>const char</b>
*translationPlPl[Translation] =3D {</font></div>
<div><font face=3D"courier new, monospace">=C2=A0
[Translation::menuFile] =3D "&Plik",</font></div>
<div><font face=3D"courier new, monospace">=C2=A0
[Translation::menuFileNew] =3D "&Nowy",</font><span
style=3D"font-family: "courier new", monospace;">=C2=
=A0 =C2=A0
=C2=A0=C2=A0</span><font style=3D"font-family: "courier ne=
w",
monospace;" color=3D"#0000ff">// Or maybe this way is more in
C++ style?</font></div>
<div><font face=3D"courier new, monospace">=C2=A0
[Translation::menuFileOpen] =3D "&Otworz...",</font></div>
<div><font face=3D"courier new, monospace">=C2=A0
[Translation::menuFileSave] =3D "&Zapisz",</font></div>
<div><font face=3D"courier new, monospace">=C2=A0
[Translation::menuFileSaveAs] =3D "Z&apisz jako...",</font>=
</div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">=C2=A0 // ...</font></di=
v>
<div><font face=3D"courier new, monospace">};</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">// ...</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace"><b>enum class</b>
Language {</font></div>
<div><font face=3D"courier new, monospace">=C2=A0 enUs,</font></div=
>
<div><font face=3D"courier new, monospace">=C2=A0 plPl,</font></div=
>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">=C2=A0 // ...</font></di=
v>
<div><font face=3D"courier new, monospace">};</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace"><b>const char</b>
**translations[Language] =3D {</font></div>
<div><font face=3D"courier new, monospace">=C2=A0 translationEnUs,<=
/font></div>
<div><font face=3D"courier new, monospace">=C2=A0 translationPlPl,<=
/font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">=C2=A0 // ...</font></di=
v>
<div><font face=3D"courier new, monospace">};</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">// ...</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">Language language =3D
Language::enUs;</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace">// ...</font></div>
<div><font face=3D"courier new, monospace"><br>
</font></div>
<div><font face=3D"courier new, monospace"><b>int</b> languageId =
=3D
<b>static_cast</b><<b>int</b>>(language);</font></div>
<div><font face=3D"courier new, monospace"><b>int</b>
translationId =3D <b>static_cast</b><<b>int</b>>(Translat=
ion::menuFileNew);</font></div>
<div><font face=3D"courier new, monospace"><b>const char</b> *text
=3D translations[languageId][translationId];</font></div>
<div><font face=3D"courier new, monospace">menuFileNew.setText(text=
);</font></div>
</div>
-- <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 email to <a moz-do-not-send=3D"true"
href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposals+=
unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a moz-do-not-send=3D"true"
href=3D"mailto:std-proposals@isocpp.org">std-proposals@isocpp.org</=
a>.<br>
To view this discussion on the web visit <a
moz-do-not-send=3D"true"
href=3D"https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0f8015=
31-bfdb-49b5-a8f5-d5ffffbfcfc7%40isocpp.org?utm_medium=3Demail&utm_sour=
ce=3Dfooter">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0=
f801531-bfdb-49b5-a8f5-d5ffffbfcfc7%40isocpp.org</a>.<br>
</blockquote>
<br>
</body>
</html>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;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"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/a5fd12a8-10a9-4490-ed77-c1c75fc5ffd4%=
40codeplay.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.googl=
e.com/a/isocpp.org/d/msgid/std-proposals/a5fd12a8-10a9-4490-ed77-c1c75fc5ff=
d4%40codeplay.com</a>.<br />
--------------FD81D1087A0EB6E17D8A9E23--
.
Author: Mariusz Moczala <mmoczala@gmail.com>
Date: Tue, 26 Jul 2016 10:56:08 -0700 (PDT)
Raw View
------=_Part_479_311191707.1469555768397
Content-Type: multipart/alternative;
boundary="----=_Part_480_1058487044.1469555768397"
------=_Part_480_1058487044.1469555768397
Content-Type: text/plain; charset=UTF-8
Hi Simon,
Thank you very much for your comments!
I fully agree with your solution.
Thanks,
Mariusz
--
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/bdcea360-29dc-49aa-8b17-eec98b44e752%40isocpp.org.
------=_Part_480_1058487044.1469555768397
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>Hi Simon,</div><div><br></div>Thank you very much for=
your comments!<div>I fully agree with your solution.</div><div><br></div><=
div>Thanks,</div><div>Mariusz</div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;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"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/bdcea360-29dc-49aa-8b17-eec98b44e752%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/bdcea360-29dc-49aa-8b17-eec98b44e752=
%40isocpp.org</a>.<br />
------=_Part_480_1058487044.1469555768397--
------=_Part_479_311191707.1469555768397--
.