Topic: Already Discussed? Proposal of Simplified Class


Author: lucky.resistor@gmail.com
Date: Wed, 27 Feb 2019 05:28:40 -0800 (PST)
Raw View
------=_Part_1852_364983674.1551274120305
Content-Type: multipart/alternative;
 boundary="----=_Part_1853_1097267302.1551274120305"

------=_Part_1853_1097267302.1551274120305
Content-Type: text/plain; charset="UTF-8"


Hi

I would like to create a proposal to simplify class forward declarations
using namespaces.

Before I invest time into the proposal, I did like to know if this kind of
proposal was already discussed and/or rejected. My internet search did not
got any result, but this may be just the case because I did not found the
right keywords for my search.

My core proposal is actually quite simple. If one is using libraries and
namespaces, a forward declaration of a class in a namespace is a common
thing

namespace ex {
class Foo;
class Bar;
}

class Example {
  ex::Foo *_foo;
  ex::Bar *_bar;
};


With nested namespace, this code gets worse:

namespace ex {
namespace foo {
class Foo;
}
namespace bar {
class Bar;
}
}

class Example {
  ex::foo::Foo *_foo;
  ex::bar::Bar *_bar;
};


If namespaces in forward declarations would be allowed, it would simplify
the code:

class ::ex::foo::Foo;
class ::ex::bar::Bar;

class Example {
  ex::foo::Foo *_foo;
  ex::bar::Bar *_bar;
};


Was this feature ever discussed? Was it rejected, and why?

All the best,
LR

--
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/59af2837-0237-4cfa-8b89-dafc1b7a77c1%40isocpp.org.

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

<div dir=3D"ltr"><br><div>Hi</div><div><br></div><div>I would like to creat=
e a proposal to simplify class forward declarations using namespaces.</div>=
<div><br></div><div>Before I invest time into the proposal, I did like to k=
now if this kind of proposal was already discussed and/or rejected. My inte=
rnet search did not got any result, but this may be just the case because I=
 did not found the right keywords for my search.</div><div><br></div><div>M=
y core proposal is actually quite simple. If one is using libraries and nam=
espaces, a forward declaration of a class in a namespace is a common thing<=
/div><div><br></div><div class=3D"prettyprint" style=3D"background-color: r=
gb(250, 250, 250); border: 1px solid rgb(187, 187, 187); word-wrap: break-w=
ord;"><code class=3D"prettyprint"><div class=3D"subprettyprint"><span style=
=3D"color: #008;" class=3D"styled-by-prettify">namespace</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> ex </span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" cla=
ss=3D"styled-by-prettify">class</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> </span><span style=3D"color: #606;" class=3D"styled-b=
y-prettify">Foo</span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
</span><span style=3D"color: #008;" class=3D"styled-by-prettify">class</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span s=
tyle=3D"color: #606;" class=3D"styled-by-prettify">Bar</span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"><br></span><span style=3D"color: #660;" =
class=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"=
styled-by-prettify"><br><br></span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">class</span><span style=3D"color: #000;" class=3D"styled-=
by-prettify"> </span><span style=3D"color: #606;" class=3D"styled-by-pretti=
fy">Example</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 ex</sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span=
 style=3D"color: #606;" class=3D"styled-by-prettify">Foo</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">*</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify">_foo</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"><br>=C2=A0 ex</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">::</span><span style=3D"color: #606;" class=3D"styled-by-=
prettify">Bar</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">*</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify">_bar</span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">;</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">};</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"><br><br></span></div></code></div><div><br=
>With nested namespace, this code gets worse:<br></div><div><br></div><div =
class=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250); border=
: 1px solid rgb(187, 187, 187); word-wrap: break-word;"><code class=3D"pret=
typrint"><div class=3D"subprettyprint"><span style=3D"color: #008;" class=
=3D"styled-by-prettify">namespace</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> ex </span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">{</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"><br></span><span style=3D"color: #008;" class=3D"styled-by-prettif=
y">namespace</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> foo </span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</=
span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><=
span style=3D"color: #008;" class=3D"styled-by-prettify">class</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"=
color: #606;" class=3D"styled-by-prettify">Foo</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"><br></span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"><br></span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">namespace</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> bar </span><span style=3D"color: #660;" class=3D"styled-by-prettify">=
{</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></spa=
n><span style=3D"color: #008;" class=3D"styled-by-prettify">class</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #606;" class=3D"styled-by-prettify">Bar</span><span style=3D"col=
or: #660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;=
" class=3D"styled-by-prettify"><br></span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">}</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"><br></span><span style=3D"color: #660;" class=3D"styled-by-=
prettify">}</span><span style=3D"color: #000;" class=3D"styled-by-prettify"=
><br><br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">c=
lass</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </spa=
n><span style=3D"color: #606;" class=3D"styled-by-prettify">Example</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"><br>=C2=A0 ex</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify">foo</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">::</span><span style=3D"color: #606;" class=3D"s=
tyled-by-prettify">Foo</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">*</span><span style=3D"color: #000;" class=3D"styled-by-prettify">_foo</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">;</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 ex</span><=
span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify">bar</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">::</span><span style=3D"color: #6=
06;" class=3D"styled-by-prettify">Bar</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">*</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify">_bar</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">};</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"><br><br></span></div=
></code></div><div><div><br></div><div>If namespaces in forward declaration=
s would be allowed, it would simplify the code:</div><div><br></div><div cl=
ass=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250); border: =
1px solid rgb(187, 187, 187); word-wrap: break-word;"><code class=3D"pretty=
print"><div class=3D"subprettyprint"><span style=3D"color: #008;" class=3D"=
styled-by-prettify">class</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">ex=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify">foo</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"c=
olor: #606;" class=3D"styled-by-prettify">Foo</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=3D"=
styled-by-prettify">class</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">ex=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify">bar</span><span st=
yle=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D"c=
olor: #606;" class=3D"styled-by-prettify">Bar</span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">;</span><span style=3D"color: #000;" cla=
ss=3D"styled-by-prettify"><br><br></span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">class</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"> </span><span style=3D"color: #606;" class=3D"styled-by-=
prettify">Example</span><span style=3D"color: #000;" class=3D"styled-by-pre=
ttify"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">{<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=C2=A0 =
ex</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span=
><span style=3D"color: #000;" class=3D"styled-by-prettify">foo</span><span =
style=3D"color: #660;" class=3D"styled-by-prettify">::</span><span style=3D=
"color: #606;" class=3D"styled-by-prettify">Foo</span><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">*</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify">_foo</span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">;</span><span style=3D"color: #000;" class=3D"styled-by-pretti=
fy"><br>=C2=A0 ex</span><span style=3D"color: #660;" class=3D"styled-by-pre=
ttify">::</span><span style=3D"color: #000;" class=3D"styled-by-prettify">b=
ar</span><span style=3D"color: #660;" class=3D"styled-by-prettify">::</span=
><span style=3D"color: #606;" class=3D"styled-by-prettify">Bar</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">*</span><span style=3D"color: #0=
00;" class=3D"styled-by-prettify">_bar</span><span style=3D"color: #660;" c=
lass=3D"styled-by-prettify">;</span><span style=3D"color: #000;" class=3D"s=
tyled-by-prettify"><br></span><span style=3D"color: #660;" class=3D"styled-=
by-prettify">};</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"><br><br></span></div></code></div><div><br>Was this feature ever discu=
ssed? Was it rejected, and why?</div></div><div><br></div><div>All the best=
,</div><div>LR</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/59af2837-0237-4cfa-8b89-dafc1b7a77c1%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/59af2837-0237-4cfa-8b89-dafc1b7a77c1=
%40isocpp.org</a>.<br />

------=_Part_1853_1097267302.1551274120305--

------=_Part_1852_364983674.1551274120305--

.


Author: Dejan Milosavljevic <dmilos@gmail.com>
Date: Thu, 28 Feb 2019 16:44:41 +0100
Raw View
--000000000000c223300582f62bce
Content-Type: text/plain; charset="UTF-8"

In forward declaration it is not clear are foo or bar is namespace or
class.

namespace ex::foo; //!< foo is namespace an this imply that ex is namespace
too
namespace ex::bar;
class ::ex::foo::Foo;
class ::ex::bar::Bar;

class Example {
  ex::foo::Foo *_foo;
  ex::bar::Bar *_bar;
};

On Wed, Feb 27, 2019 at 2:28 PM <lucky.resistor@gmail.com> wrote:

>
> Hi
>
> I would like to create a proposal to simplify class forward declarations
> using namespaces.
>
> Before I invest time into the proposal, I did like to know if this kind of
> proposal was already discussed and/or rejected. My internet search did not
> got any result, but this may be just the case because I did not found the
> right keywords for my search.
>
> My core proposal is actually quite simple. If one is using libraries and
> namespaces, a forward declaration of a class in a namespace is a common
> thing
>
> namespace ex {
> class Foo;
> class Bar;
> }
>
> class Example {
>   ex::Foo *_foo;
>   ex::Bar *_bar;
> };
>
>
> With nested namespace, this code gets worse:
>
> namespace ex {
> namespace foo {
> class Foo;
> }
> namespace bar {
> class Bar;
> }
> }
>
> class Example {
>   ex::foo::Foo *_foo;
>   ex::bar::Bar *_bar;
> };
>
>
> If namespaces in forward declarations would be allowed, it would simplify
> the code:
>
> class ::ex::foo::Foo;
> class ::ex::bar::Bar;
>
> class Example {
>   ex::foo::Foo *_foo;
>   ex::bar::Bar *_bar;
> };
>
>
> Was this feature ever discussed? Was it rejected, and why?
>
> All the best,
> LR
>
> --
> 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/59af2837-0237-4cfa-8b89-dafc1b7a77c1%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/59af2837-0237-4cfa-8b89-dafc1b7a77c1%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/CAEfefmyv4Xii3uzDSJM3GboVmZQkp2YuP6A6LAN5cfht-ujOYw%40mail.gmail.com.

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

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div>In forward declarat=
ion it is not clear are foo or bar is namespace or class.=C2=A0</div><div><=
br></div><div><font size=3D"1"><font color=3D"#000013">namespace ex::foo; /=
/!&lt; foo is namespace an this imply that ex is namespace too</font></font=
></div><div><font size=3D"1"><font color=3D"#000013"><span class=3D"gmail-m=
_6486715070722518787styled-by-prettify" style=3D"text-align:left;text-trans=
form:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica=
,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-deco=
ration:none;word-spacing:0px;white-space:normal"><div style=3D"text-align:l=
eft;color:rgb(34,34,34);text-transform:none;text-indent:0px;letter-spacing:=
normal;font-family:Arial,Helvetica,sans-serif;font-size:13.33px;font-style:=
normal;font-variant:normal;font-weight:400;text-decoration:none;word-spacin=
g:0px;white-space:normal"><font size=3D"1"><font color=3D"#000013">namespac=
e ex::bar;</font></font></div>class</span></font></font><font size=3D"1"><s=
pan class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-a=
lign:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spaci=
ng:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-var=
iant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-spa=
ce:normal"> </span><span class=3D"gmail-m_6486715070722518787styled-by-pret=
tify" style=3D"text-align:left;color:rgb(102,102,0);text-transform:none;tex=
t-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;f=
ont-style:normal;font-variant:normal;font-weight:400;text-decoration:none;w=
ord-spacing:0px;white-space:normal">::</span><span class=3D"gmail-m_6486715=
070722518787styled-by-prettify" style=3D"text-align:left;color:rgb(0,0,0);t=
ext-transform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,=
Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;=
text-decoration:none;word-spacing:0px;white-space:normal">ex</span><span cl=
ass=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-align:l=
eft;color:rgb(102,102,0);text-transform:none;text-indent:0px;letter-spacing=
:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-varia=
nt:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space=
:normal">::</span><span class=3D"gmail-m_6486715070722518787styled-by-prett=
ify" style=3D"text-align:left;color:rgb(0,0,0);text-transform:none;text-ind=
ent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-s=
tyle:normal;font-variant:normal;font-weight:400;text-decoration:none;word-s=
pacing:0px;white-space:normal">foo</span><span class=3D"gmail-m_64867150707=
22518787styled-by-prettify" style=3D"text-align:left;color:rgb(102,102,0);t=
ext-transform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,=
Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;=
text-decoration:none;word-spacing:0px;white-space:normal">::</span><span cl=
ass=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-align:l=
eft;color:rgb(102,0,102);text-transform:none;text-indent:0px;letter-spacing=
:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-varia=
nt:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space=
:normal">Foo</span><span class=3D"gmail-m_6486715070722518787styled-by-pret=
tify" style=3D"text-align:left;color:rgb(102,102,0);text-transform:none;tex=
t-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;f=
ont-style:normal;font-variant:normal;font-weight:400;text-decoration:none;w=
ord-spacing:0px;white-space:normal">;</span><span class=3D"gmail-m_64867150=
70722518787styled-by-prettify" style=3D"text-align:left;color:rgb(0,0,0);te=
xt-transform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,H=
elvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;t=
ext-decoration:none;word-spacing:0px;white-space:normal"><br></span><span c=
lass=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-align:=
left;color:rgb(0,0,136);text-transform:none;text-indent:0px;letter-spacing:=
normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-varian=
t:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:=
normal">class</span><span class=3D"gmail-m_6486715070722518787styled-by-pre=
ttify" style=3D"text-align:left;color:rgb(0,0,0);text-transform:none;text-i=
ndent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font=
-style:normal;font-variant:normal;font-weight:400;text-decoration:none;word=
-spacing:0px;white-space:normal"> </span><span class=3D"gmail-m_64867150707=
22518787styled-by-prettify" style=3D"text-align:left;color:rgb(102,102,0);t=
ext-transform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,=
Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;=
text-decoration:none;word-spacing:0px;white-space:normal">::</span><span cl=
ass=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-align:l=
eft;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:nor=
mal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:n=
ormal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:nor=
mal">ex</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify"=
 style=3D"text-align:left;color:rgb(102,102,0);text-transform:none;text-ind=
ent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-s=
tyle:normal;font-variant:normal;font-weight:400;text-decoration:none;word-s=
pacing:0px;white-space:normal">::</span><span class=3D"gmail-m_648671507072=
2518787styled-by-prettify" style=3D"text-align:left;color:rgb(0,0,0);text-t=
ransform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helve=
tica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-=
decoration:none;word-spacing:0px;white-space:normal">bar</span><span class=
=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-align:left=
;color:rgb(102,102,0);text-transform:none;text-indent:0px;letter-spacing:no=
rmal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:=
normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:no=
rmal">::</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify=
" style=3D"text-align:left;color:rgb(102,0,102);text-transform:none;text-in=
dent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-=
style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-=
spacing:0px;white-space:normal">Bar</span><span class=3D"gmail-m_6486715070=
722518787styled-by-prettify" style=3D"text-align:left;color:rgb(102,102,0);=
text-transform:none;text-indent:0px;letter-spacing:normal;font-family:Arial=
,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:400=
;text-decoration:none;word-spacing:0px;white-space:normal">;</span><span cl=
ass=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-align:l=
eft;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:nor=
mal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:n=
ormal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:nor=
mal"><br><br></span><span class=3D"gmail-m_6486715070722518787styled-by-pre=
ttify" style=3D"text-align:left;color:rgb(0,0,136);text-transform:none;text=
-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;fo=
nt-style:normal;font-variant:normal;font-weight:400;text-decoration:none;wo=
rd-spacing:0px;white-space:normal">class</span><span class=3D"gmail-m_64867=
15070722518787styled-by-prettify" style=3D"text-align:left;color:rgb(0,0,0)=
;text-transform:none;text-indent:0px;letter-spacing:normal;font-family:Aria=
l,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:40=
0;text-decoration:none;word-spacing:0px;white-space:normal"> </span><span c=
lass=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-align:=
left;color:rgb(102,0,102);text-transform:none;text-indent:0px;letter-spacin=
g:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-vari=
ant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-spac=
e:normal">Example</span><span class=3D"gmail-m_6486715070722518787styled-by=
-prettify" style=3D"text-align:left;color:rgb(0,0,0);text-transform:none;te=
xt-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;=
font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;=
word-spacing:0px;white-space:normal"> </span><span class=3D"gmail-m_6486715=
070722518787styled-by-prettify" style=3D"text-align:left;color:rgb(102,102,=
0);text-transform:none;text-indent:0px;letter-spacing:normal;font-family:Ar=
ial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:=
400;text-decoration:none;word-spacing:0px;white-space:normal">{</span><span=
 class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-alig=
n:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:=
normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-varian=
t:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:=
normal"><br>=C2=A0 ex</span><span class=3D"gmail-m_6486715070722518787style=
d-by-prettify" style=3D"text-align:left;color:rgb(102,102,0);text-transform=
:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,san=
s-serif;font-style:normal;font-variant:normal;font-weight:400;text-decorati=
on:none;word-spacing:0px;white-space:normal">::</span><span class=3D"gmail-=
m_6486715070722518787styled-by-prettify" style=3D"text-align:left;color:rgb=
(0,0,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-fami=
ly:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-we=
ight:400;text-decoration:none;word-spacing:0px;white-space:normal">foo</spa=
n><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"te=
xt-align:left;color:rgb(102,102,0);text-transform:none;text-indent:0px;lett=
er-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;=
font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;w=
hite-space:normal">::</span><span class=3D"gmail-m_6486715070722518787style=
d-by-prettify" style=3D"text-align:left;color:rgb(102,0,102);text-transform=
:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,san=
s-serif;font-style:normal;font-variant:normal;font-weight:400;text-decorati=
on:none;word-spacing:0px;white-space:normal">Foo</span><span class=3D"gmail=
-m_6486715070722518787styled-by-prettify" style=3D"text-align:left;color:rg=
b(0,0,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-fam=
ily:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-w=
eight:400;text-decoration:none;word-spacing:0px;white-space:normal"> </span=
><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"tex=
t-align:left;color:rgb(102,102,0);text-transform:none;text-indent:0px;lette=
r-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;f=
ont-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;wh=
ite-space:normal">*</span><span class=3D"gmail-m_6486715070722518787styled-=
by-prettify" style=3D"text-align:left;color:rgb(0,0,0);text-transform:none;=
text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-seri=
f;font-style:normal;font-variant:normal;font-weight:400;text-decoration:non=
e;word-spacing:0px;white-space:normal">_foo</span><span class=3D"gmail-m_64=
86715070722518787styled-by-prettify" style=3D"text-align:left;color:rgb(102=
,102,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-fami=
ly:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-we=
ight:400;text-decoration:none;word-spacing:0px;white-space:normal">;</span>=
<span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"text=
-align:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spa=
cing:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-v=
ariant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-s=
pace:normal"><br>=C2=A0 ex</span><span class=3D"gmail-m_6486715070722518787=
styled-by-prettify" style=3D"text-align:left;color:rgb(102,102,0);text-tran=
sform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetic=
a,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-dec=
oration:none;word-spacing:0px;white-space:normal">::</span><span class=3D"g=
mail-m_6486715070722518787styled-by-prettify" style=3D"text-align:left;colo=
r:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:normal;font=
-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;fo=
nt-weight:400;text-decoration:none;word-spacing:0px;white-space:normal">bar=
</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=
=3D"text-align:left;color:rgb(102,102,0);text-transform:none;text-indent:0p=
x;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:n=
ormal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing=
:0px;white-space:normal">::</span><span class=3D"gmail-m_648671507072251878=
7styled-by-prettify" style=3D"text-align:left;color:rgb(102,0,102);text-tra=
nsform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helveti=
ca,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-de=
coration:none;word-spacing:0px;white-space:normal">Bar</span><span class=3D=
"gmail-m_6486715070722518787styled-by-prettify" style=3D"text-align:left;co=
lor:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:normal;fo=
nt-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;=
font-weight:400;text-decoration:none;word-spacing:0px;white-space:normal"> =
</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=
=3D"text-align:left;color:rgb(102,102,0);text-transform:none;text-indent:0p=
x;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:n=
ormal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing=
:0px;white-space:normal">*</span><span class=3D"gmail-m_6486715070722518787=
styled-by-prettify" style=3D"text-align:left;color:rgb(0,0,0);text-transfor=
m:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sa=
ns-serif;font-style:normal;font-variant:normal;font-weight:400;text-decorat=
ion:none;word-spacing:0px;white-space:normal">_bar</span><span class=3D"gma=
il-m_6486715070722518787styled-by-prettify" style=3D"text-align:left;color:=
rgb(102,102,0);text-transform:none;text-indent:0px;letter-spacing:normal;fo=
nt-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;=
font-weight:400;text-decoration:none;word-spacing:0px;white-space:normal">;=
</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=
=3D"text-align:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;le=
tter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:norma=
l;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px=
;white-space:normal"><br></span><span class=3D"gmail-m_6486715070722518787s=
tyled-by-prettify" style=3D"text-align:left;color:rgb(102,102,0);text-trans=
form:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica=
,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-deco=
ration:none;word-spacing:0px;white-space:normal">};</span></font></div></di=
v></div></div><br><div class=3D"gmail_quote"><div class=3D"gmail_attr" dir=
=3D"ltr">On Wed, Feb 27, 2019 at 2:28 PM &lt;<a href=3D"mailto:lucky.resist=
or@gmail.com">lucky.resistor@gmail.com</a>&gt; wrote:<br></div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;padding-left:1ex;bo=
rder-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:so=
lid"><div dir=3D"ltr"><br><div>Hi</div><div><br></div><div>I would like to =
create a proposal to simplify class forward declarations using namespaces.<=
/div><div><br></div><div>Before I invest time into the proposal, I did like=
 to know if this kind of proposal was already discussed and/or rejected. My=
 internet search did not got any result, but this may be just the case beca=
use I did not found the right keywords for my search.</div><div><br></div><=
div>My core proposal is actually quite simple. If one is using libraries an=
d namespaces, a forward declaration of a class in a namespace is a common t=
hing</div><div><br></div><div class=3D"gmail-m_6486715070722518787prettypri=
nt" style=3D"border:1px solid rgb(187,187,187);background-color:rgb(250,250=
,250)"><code class=3D"gmail-m_6486715070722518787prettyprint"><div class=3D=
"gmail-m_6486715070722518787subprettyprint"><span class=3D"gmail-m_64867150=
70722518787styled-by-prettify" style=3D"color:rgb(0,0,136)">namespace</span=
><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"col=
or:rgb(0,0,0)"> ex </span><span class=3D"gmail-m_6486715070722518787styled-=
by-prettify" style=3D"color:rgb(102,102,0)">{</span><span class=3D"gmail-m_=
6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><br></spa=
n><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"co=
lor:rgb(0,0,136)">class</span><span class=3D"gmail-m_6486715070722518787sty=
led-by-prettify" style=3D"color:rgb(0,0,0)"> </span><span class=3D"gmail-m_=
6486715070722518787styled-by-prettify" style=3D"color:rgb(102,0,102)">Foo</=
span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D=
"color:rgb(102,102,0)">;</span><span class=3D"gmail-m_6486715070722518787st=
yled-by-prettify" style=3D"color:rgb(0,0,0)"><br></span><span class=3D"gmai=
l-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,136)">cla=
ss</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" styl=
e=3D"color:rgb(0,0,0)"> </span><span class=3D"gmail-m_6486715070722518787st=
yled-by-prettify" style=3D"color:rgb(102,0,102)">Bar</span><span class=3D"g=
mail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)=
">;</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" sty=
le=3D"color:rgb(0,0,0)"><br></span><span class=3D"gmail-m_64867150707225187=
87styled-by-prettify" style=3D"color:rgb(102,102,0)">}</span><span class=3D=
"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)">=
<br><br></span><span class=3D"gmail-m_6486715070722518787styled-by-prettify=
" style=3D"color:rgb(0,0,136)">class</span><span class=3D"gmail-m_648671507=
0722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"> </span><span clas=
s=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,=
0,102)">Example</span><span class=3D"gmail-m_6486715070722518787styled-by-p=
rettify" style=3D"color:rgb(0,0,0)"> </span><span class=3D"gmail-m_64867150=
70722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">{</span><span=
 class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb=
(0,0,0)"><br>=C2=A0 ex</span><span class=3D"gmail-m_6486715070722518787styl=
ed-by-prettify" style=3D"color:rgb(102,102,0)">::</span><span class=3D"gmai=
l-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,0,102)">F=
oo</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" styl=
e=3D"color:rgb(0,0,0)"> </span><span class=3D"gmail-m_6486715070722518787st=
yled-by-prettify" style=3D"color:rgb(102,102,0)">*</span><span class=3D"gma=
il-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)">_foo=
</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=
=3D"color:rgb(102,102,0)">;</span><span class=3D"gmail-m_648671507072251878=
7styled-by-prettify" style=3D"color:rgb(0,0,0)"><br>=C2=A0 ex</span><span c=
lass=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(1=
02,102,0)">::</span><span class=3D"gmail-m_6486715070722518787styled-by-pre=
ttify" style=3D"color:rgb(102,0,102)">Bar</span><span class=3D"gmail-m_6486=
715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"> </span><span=
 class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb=
(102,102,0)">*</span><span class=3D"gmail-m_6486715070722518787styled-by-pr=
ettify" style=3D"color:rgb(0,0,0)">_bar</span><span class=3D"gmail-m_648671=
5070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">;</span><sp=
an class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:r=
gb(0,0,0)"><br></span><span class=3D"gmail-m_6486715070722518787styled-by-p=
rettify" style=3D"color:rgb(102,102,0)">};</span><span class=3D"gmail-m_648=
6715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><br><br></sp=
an></div></code></div><div><br>With nested namespace, this code gets worse:=
<br></div><div><br></div><div class=3D"gmail-m_6486715070722518787prettypri=
nt" style=3D"border:1px solid rgb(187,187,187);background-color:rgb(250,250=
,250)"><code class=3D"gmail-m_6486715070722518787prettyprint"><div class=3D=
"gmail-m_6486715070722518787subprettyprint"><span class=3D"gmail-m_64867150=
70722518787styled-by-prettify" style=3D"color:rgb(0,0,136)">namespace</span=
><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"col=
or:rgb(0,0,0)"> ex </span><span class=3D"gmail-m_6486715070722518787styled-=
by-prettify" style=3D"color:rgb(102,102,0)">{</span><span class=3D"gmail-m_=
6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><br></spa=
n><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"co=
lor:rgb(0,0,136)">namespace</span><span class=3D"gmail-m_648671507072251878=
7styled-by-prettify" style=3D"color:rgb(0,0,0)"> foo </span><span class=3D"=
gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0=
)">{</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" st=
yle=3D"color:rgb(0,0,0)"><br></span><span class=3D"gmail-m_6486715070722518=
787styled-by-prettify" style=3D"color:rgb(0,0,136)">class</span><span class=
=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0=
)"> </span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" st=
yle=3D"color:rgb(102,0,102)">Foo</span><span class=3D"gmail-m_6486715070722=
518787styled-by-prettify" style=3D"color:rgb(102,102,0)">;</span><span clas=
s=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,=
0)"><br></span><span class=3D"gmail-m_6486715070722518787styled-by-prettify=
" style=3D"color:rgb(102,102,0)">}</span><span class=3D"gmail-m_64867150707=
22518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><br></span><span cla=
ss=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0=
,136)">namespace</span><span class=3D"gmail-m_6486715070722518787styled-by-=
prettify" style=3D"color:rgb(0,0,0)"> bar </span><span class=3D"gmail-m_648=
6715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">{</span>=
<span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"colo=
r:rgb(0,0,0)"><br></span><span class=3D"gmail-m_6486715070722518787styled-b=
y-prettify" style=3D"color:rgb(0,0,136)">class</span><span class=3D"gmail-m=
_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"> </span>=
<span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"colo=
r:rgb(102,0,102)">Bar</span><span class=3D"gmail-m_6486715070722518787style=
d-by-prettify" style=3D"color:rgb(102,102,0)">;</span><span class=3D"gmail-=
m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><br></s=
pan><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"=
color:rgb(102,102,0)">}</span><span class=3D"gmail-m_6486715070722518787sty=
led-by-prettify" style=3D"color:rgb(0,0,0)"><br></span><span class=3D"gmail=
-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">}<=
/span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=
=3D"color:rgb(0,0,0)"><br><br></span><span class=3D"gmail-m_648671507072251=
8787styled-by-prettify" style=3D"color:rgb(0,0,136)">class</span><span clas=
s=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,=
0)"> </span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" s=
tyle=3D"color:rgb(102,0,102)">Example</span><span class=3D"gmail-m_64867150=
70722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"> </span><span cla=
ss=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102=
,102,0)">{</span><span class=3D"gmail-m_6486715070722518787styled-by-pretti=
fy" style=3D"color:rgb(0,0,0)"><br>=C2=A0 ex</span><span class=3D"gmail-m_6=
486715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">::</sp=
an><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"c=
olor:rgb(0,0,0)">foo</span><span class=3D"gmail-m_6486715070722518787styled=
-by-prettify" style=3D"color:rgb(102,102,0)">::</span><span class=3D"gmail-=
m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,0,102)">Foo=
</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=
=3D"color:rgb(0,0,0)"> </span><span class=3D"gmail-m_6486715070722518787sty=
led-by-prettify" style=3D"color:rgb(102,102,0)">*</span><span class=3D"gmai=
l-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)">_foo<=
/span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=
=3D"color:rgb(102,102,0)">;</span><span class=3D"gmail-m_648671507072251878=
7styled-by-prettify" style=3D"color:rgb(0,0,0)"><br>=C2=A0 ex</span><span c=
lass=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(1=
02,102,0)">::</span><span class=3D"gmail-m_6486715070722518787styled-by-pre=
ttify" style=3D"color:rgb(0,0,0)">bar</span><span class=3D"gmail-m_64867150=
70722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">::</span><spa=
n class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rg=
b(102,0,102)">Bar</span><span class=3D"gmail-m_6486715070722518787styled-by=
-prettify" style=3D"color:rgb(0,0,0)"> </span><span class=3D"gmail-m_648671=
5070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">*</span><sp=
an class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:r=
gb(0,0,0)">_bar</span><span class=3D"gmail-m_6486715070722518787styled-by-p=
rettify" style=3D"color:rgb(102,102,0)">;</span><span class=3D"gmail-m_6486=
715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><br></span><s=
pan class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:=
rgb(102,102,0)">};</span><span class=3D"gmail-m_6486715070722518787styled-b=
y-prettify" style=3D"color:rgb(0,0,0)"><br><br></span></div></code></div><d=
iv><div><br></div><div>If namespaces in forward declarations would be allow=
ed, it would simplify the code:</div><div><br></div><div class=3D"gmail-m_6=
486715070722518787prettyprint" style=3D"border:1px solid rgb(187,187,187);b=
ackground-color:rgb(250,250,250)"><code class=3D"gmail-m_648671507072251878=
7prettyprint"><div class=3D"gmail-m_6486715070722518787subprettyprint"><spa=
n class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rg=
b(0,0,136)">class</span><span class=3D"gmail-m_6486715070722518787styled-by=
-prettify" style=3D"color:rgb(0,0,0)"> </span><span class=3D"gmail-m_648671=
5070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">::</span><s=
pan class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:=
rgb(0,0,0)">ex</span><span class=3D"gmail-m_6486715070722518787styled-by-pr=
ettify" style=3D"color:rgb(102,102,0)">::</span><span class=3D"gmail-m_6486=
715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)">foo</span><sp=
an class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:r=
gb(102,102,0)">::</span><span class=3D"gmail-m_6486715070722518787styled-by=
-prettify" style=3D"color:rgb(102,0,102)">Foo</span><span class=3D"gmail-m_=
6486715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">;</sp=
an><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"c=
olor:rgb(0,0,0)"><br></span><span class=3D"gmail-m_6486715070722518787style=
d-by-prettify" style=3D"color:rgb(0,0,136)">class</span><span class=3D"gmai=
l-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"> </sp=
an><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"c=
olor:rgb(102,102,0)">::</span><span class=3D"gmail-m_6486715070722518787sty=
led-by-prettify" style=3D"color:rgb(0,0,0)">ex</span><span class=3D"gmail-m=
_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">::</=
span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D=
"color:rgb(0,0,0)">bar</span><span class=3D"gmail-m_6486715070722518787styl=
ed-by-prettify" style=3D"color:rgb(102,102,0)">::</span><span class=3D"gmai=
l-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,0,102)">B=
ar</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" styl=
e=3D"color:rgb(102,102,0)">;</span><span class=3D"gmail-m_64867150707225187=
87styled-by-prettify" style=3D"color:rgb(0,0,0)"><br><br></span><span class=
=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,1=
36)">class</span><span class=3D"gmail-m_6486715070722518787styled-by-pretti=
fy" style=3D"color:rgb(0,0,0)"> </span><span class=3D"gmail-m_6486715070722=
518787styled-by-prettify" style=3D"color:rgb(102,0,102)">Example</span><spa=
n class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rg=
b(0,0,0)"> </span><span class=3D"gmail-m_6486715070722518787styled-by-prett=
ify" style=3D"color:rgb(102,102,0)">{</span><span class=3D"gmail-m_64867150=
70722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><br>=C2=A0 ex</sp=
an><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"c=
olor:rgb(102,102,0)">::</span><span class=3D"gmail-m_6486715070722518787sty=
led-by-prettify" style=3D"color:rgb(0,0,0)">foo</span><span class=3D"gmail-=
m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">::<=
/span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=
=3D"color:rgb(102,0,102)">Foo</span><span class=3D"gmail-m_6486715070722518=
787styled-by-prettify" style=3D"color:rgb(0,0,0)"> </span><span class=3D"gm=
ail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)"=
>*</span><span class=3D"gmail-m_6486715070722518787styled-by-prettify" styl=
e=3D"color:rgb(0,0,0)">_foo</span><span class=3D"gmail-m_648671507072251878=
7styled-by-prettify" style=3D"color:rgb(102,102,0)">;</span><span class=3D"=
gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><=
br>=C2=A0 ex</span><span class=3D"gmail-m_6486715070722518787styled-by-pret=
tify" style=3D"color:rgb(102,102,0)">::</span><span class=3D"gmail-m_648671=
5070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)">bar</span><span=
 class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:rgb=
(102,102,0)">::</span><span class=3D"gmail-m_6486715070722518787styled-by-p=
rettify" style=3D"color:rgb(102,0,102)">Bar</span><span class=3D"gmail-m_64=
86715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"> </span><sp=
an class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color:r=
gb(102,102,0)">*</span><span class=3D"gmail-m_6486715070722518787styled-by-=
prettify" style=3D"color:rgb(0,0,0)">_bar</span><span class=3D"gmail-m_6486=
715070722518787styled-by-prettify" style=3D"color:rgb(102,102,0)">;</span><=
span class=3D"gmail-m_6486715070722518787styled-by-prettify" style=3D"color=
:rgb(0,0,0)"><br></span><span class=3D"gmail-m_6486715070722518787styled-by=
-prettify" style=3D"color:rgb(102,102,0)">};</span><span class=3D"gmail-m_6=
486715070722518787styled-by-prettify" style=3D"color:rgb(0,0,0)"><br><br></=
span></div></code></div><div><br>Was this feature ever discussed? Was it re=
jected, and why?</div></div><div><br></div><div>All the best,</div><div>LR<=
/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/59af2837-0237-4cfa-8b89-dafc1b7a77c1%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/59af2837-0237-=
4cfa-8b89-dafc1b7a77c1%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/CAEfefmyv4Xii3uzDSJM3GboVmZQkp2YuP6A6=
LAN5cfht-ujOYw%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAEfefmyv4Xii3uzD=
SJM3GboVmZQkp2YuP6A6LAN5cfht-ujOYw%40mail.gmail.com</a>.<br />

--000000000000c223300582f62bce--

.


Author: tobias.erbsland@gmail.com
Date: Thu, 28 Feb 2019 08:08:29 -0800 (PST)
Raw View
------=_Part_2452_362069216.1551370110122
Content-Type: multipart/alternative;
 boundary="----=_Part_2453_253653231.1551370110123"

------=_Part_2453_253653231.1551370110123
Content-Type: text/plain; charset="UTF-8"


You are absolutely right!

A solution would be a forward declaration of namespaces, as you shown in
your code.
This would still remove the requirements for the brackets around the class
definitions and allow a simpler syntax.

All the best,
LR


Am Donnerstag, 28. Februar 2019 16:44:54 UTC+1 schrieb Dejan Milosavljevic:
>
> In forward declaration it is not clear are foo or bar is namespace or
> class.
>
> namespace ex::foo; //!< foo is namespace an this imply that ex is
> namespace too
> namespace ex::bar;
> class ::ex::foo::Foo;
> class ::ex::bar::Bar;
>
> class Example {
>   ex::foo::Foo *_foo;
>   ex::bar::Bar *_bar;
> };
>
> On Wed, Feb 27, 2019 at 2:28 PM <lucky.r...@gmail.com <javascript:>>
> wrote:
>
>>
>> Hi
>>
>> I would like to create a proposal to simplify class forward declarations
>> using namespaces.
>>
>> Before I invest time into the proposal, I did like to know if this kind
>> of proposal was already discussed and/or rejected. My internet search did
>> not got any result, but this may be just the case because I did not found
>> the right keywords for my search.
>>
>> My core proposal is actually quite simple. If one is using libraries and
>> namespaces, a forward declaration of a class in a namespace is a common
>> thing
>>
>> namespace ex {
>> class Foo;
>> class Bar;
>> }
>>
>> class Example {
>>   ex::Foo *_foo;
>>   ex::Bar *_bar;
>> };
>>
>>
>> With nested namespace, this code gets worse:
>>
>> namespace ex {
>> namespace foo {
>> class Foo;
>> }
>> namespace bar {
>> class Bar;
>> }
>> }
>>
>> class Example {
>>   ex::foo::Foo *_foo;
>>   ex::bar::Bar *_bar;
>> };
>>
>>
>> If namespaces in forward declarations would be allowed, it would simplify
>> the code:
>>
>> class ::ex::foo::Foo;
>> class ::ex::bar::Bar;
>>
>> class Example {
>>   ex::foo::Foo *_foo;
>>   ex::bar::Bar *_bar;
>> };
>>
>>
>> Was this feature ever discussed? Was it rejected, and why?
>>
>> All the best,
>> LR
>>
>> --
>> 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-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/59af2837-0237-4cfa-8b89-dafc1b7a77c1%40isocpp.org
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/59af2837-0237-4cfa-8b89-dafc1b7a77c1%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/1d34154c-372c-4f07-934e-465aa2e151dc%40isocpp.org.

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

<div dir=3D"ltr"><div><br></div><div>You are absolutely right!</div><div><b=
r></div><div>A solution would be a forward declaration of namespaces, as yo=
u shown in your code.</div><div>This would still remove the requirements fo=
r the brackets around the class definitions and allow a simpler syntax.</di=
v><div><br></div><div>All the best,</div><div>LR</div><br><br>Am Donnerstag=
, 28. Februar 2019 16:44:54 UTC+1 schrieb Dejan Milosavljevic:<blockquote c=
lass=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px=
 #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=
=3D"ltr"><div>In forward declaration it is not clear are foo or bar is name=
space or class.=C2=A0</div><div><br></div><div><font size=3D"1"><font color=
=3D"#000013">namespace ex::foo; //!&lt; foo is namespace an this imply that=
 ex is namespace too</font></font></div><div><font size=3D"1"><font color=
=3D"#000013"><span style=3D"text-align:left;text-transform:none;text-indent=
:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-styl=
e:normal;font-variant:normal;font-weight:400;text-decoration:none;word-spac=
ing:0px;white-space:normal"><div style=3D"text-align:left;color:rgb(34,34,3=
4);text-transform:none;text-indent:0px;letter-spacing:normal;font-family:Ar=
ial,Helvetica,sans-serif;font-size:13.33px;font-style:normal;font-variant:n=
ormal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:nor=
mal"><font size=3D"1"><font color=3D"#000013">namespace ex::bar;</font></fo=
nt></div>class</span></font></font><font size=3D"1"><span style=3D"text-ali=
gn:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing=
:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-varia=
nt:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space=
:normal"> </span><span style=3D"text-align:left;color:rgb(102,102,0);text-t=
ransform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helve=
tica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-=
decoration:none;word-spacing:0px;white-space:normal">::</span><span style=
=3D"text-align:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;le=
tter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:norma=
l;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px=
;white-space:normal">ex</span><span style=3D"text-align:left;color:rgb(102,=
102,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-famil=
y:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-wei=
ght:400;text-decoration:none;word-spacing:0px;white-space:normal">::</span>=
<span style=3D"text-align:left;color:rgb(0,0,0);text-transform:none;text-in=
dent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-=
style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-=
spacing:0px;white-space:normal">foo</span><span style=3D"text-align:left;co=
lor:rgb(102,102,0);text-transform:none;text-indent:0px;letter-spacing:norma=
l;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:nor=
mal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:norma=
l">::</span><span style=3D"text-align:left;color:rgb(102,0,102);text-transf=
orm:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,=
sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-decor=
ation:none;word-spacing:0px;white-space:normal">Foo</span><span style=3D"te=
xt-align:left;color:rgb(102,102,0);text-transform:none;text-indent:0px;lett=
er-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;=
font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;w=
hite-space:normal">;</span><span style=3D"text-align:left;color:rgb(0,0,0);=
text-transform:none;text-indent:0px;letter-spacing:normal;font-family:Arial=
,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:400=
;text-decoration:none;word-spacing:0px;white-space:normal"><br></span><span=
 style=3D"text-align:left;color:rgb(0,0,136);text-transform:none;text-inden=
t:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-sty=
le:normal;font-variant:normal;font-weight:400;text-decoration:none;word-spa=
cing:0px;white-space:normal">class</span><span style=3D"text-align:left;col=
or:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:normal;fon=
t-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;f=
ont-weight:400;text-decoration:none;word-spacing:0px;white-space:normal"> <=
/span><span style=3D"text-align:left;color:rgb(102,102,0);text-transform:no=
ne;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-s=
erif;font-style:normal;font-variant:normal;font-weight:400;text-decoration:=
none;word-spacing:0px;white-space:normal">::</span><span style=3D"text-alig=
n:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:=
normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-varian=
t:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:=
normal">ex</span><span style=3D"text-align:left;color:rgb(102,102,0);text-t=
ransform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helve=
tica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-=
decoration:none;word-spacing:0px;white-space:normal">::</span><span style=
=3D"text-align:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;le=
tter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:norma=
l;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px=
;white-space:normal">bar</span><span style=3D"text-align:left;color:rgb(102=
,102,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-fami=
ly:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-we=
ight:400;text-decoration:none;word-spacing:0px;white-space:normal">::</span=
><span style=3D"text-align:left;color:rgb(102,0,102);text-transform:none;te=
xt-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;=
font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;=
word-spacing:0px;white-space:normal">Bar</span><span style=3D"text-align:le=
ft;color:rgb(102,102,0);text-transform:none;text-indent:0px;letter-spacing:=
normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-varian=
t:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:=
normal">;</span><span style=3D"text-align:left;color:rgb(0,0,0);text-transf=
orm:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,=
sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-decor=
ation:none;word-spacing:0px;white-space:normal"><br><br></span><span style=
=3D"text-align:left;color:rgb(0,0,136);text-transform:none;text-indent:0px;=
letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:nor=
mal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0=
px;white-space:normal">class</span><span style=3D"text-align:left;color:rgb=
(0,0,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-fami=
ly:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-we=
ight:400;text-decoration:none;word-spacing:0px;white-space:normal"> </span>=
<span style=3D"text-align:left;color:rgb(102,0,102);text-transform:none;tex=
t-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;f=
ont-style:normal;font-variant:normal;font-weight:400;text-decoration:none;w=
ord-spacing:0px;white-space:normal">Example</span><span style=3D"text-align=
:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:n=
ormal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant=
:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:n=
ormal"> </span><span style=3D"text-align:left;color:rgb(102,102,0);text-tra=
nsform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helveti=
ca,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-de=
coration:none;word-spacing:0px;white-space:normal">{</span><span style=3D"t=
ext-align:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;letter-=
spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;fon=
t-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;whit=
e-space:normal"><br>=C2=A0 ex</span><span style=3D"text-align:left;color:rg=
b(102,102,0);text-transform:none;text-indent:0px;letter-spacing:normal;font=
-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;fo=
nt-weight:400;text-decoration:none;word-spacing:0px;white-space:normal">::<=
/span><span style=3D"text-align:left;color:rgb(0,0,0);text-transform:none;t=
ext-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif=
;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none=
;word-spacing:0px;white-space:normal">foo</span><span style=3D"text-align:l=
eft;color:rgb(102,102,0);text-transform:none;text-indent:0px;letter-spacing=
:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-varia=
nt:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space=
:normal">::</span><span style=3D"text-align:left;color:rgb(102,0,102);text-=
transform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helv=
etica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text=
-decoration:none;word-spacing:0px;white-space:normal">Foo</span><span style=
=3D"text-align:left;color:rgb(0,0,0);text-transform:none;text-indent:0px;le=
tter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:norma=
l;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px=
;white-space:normal"> </span><span style=3D"text-align:left;color:rgb(102,1=
02,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-family=
:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weig=
ht:400;text-decoration:none;word-spacing:0px;white-space:normal">*</span><s=
pan style=3D"text-align:left;color:rgb(0,0,0);text-transform:none;text-inde=
nt:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-st=
yle:normal;font-variant:normal;font-weight:400;text-decoration:none;word-sp=
acing:0px;white-space:normal">_foo</span><span style=3D"text-align:left;col=
or:rgb(102,102,0);text-transform:none;text-indent:0px;letter-spacing:normal=
;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant:norm=
al;font-weight:400;text-decoration:none;word-spacing:0px;white-space:normal=
">;</span><span style=3D"text-align:left;color:rgb(0,0,0);text-transform:no=
ne;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-s=
erif;font-style:normal;font-variant:normal;font-weight:400;text-decoration:=
none;word-spacing:0px;white-space:normal"><br>=C2=A0 ex</span><span style=
=3D"text-align:left;color:rgb(102,102,0);text-transform:none;text-indent:0p=
x;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:n=
ormal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing=
:0px;white-space:normal">::</span><span style=3D"text-align:left;color:rgb(=
0,0,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-famil=
y:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font-wei=
ght:400;text-decoration:none;word-spacing:0px;white-space:normal">bar</span=
><span style=3D"text-align:left;color:rgb(102,102,0);text-transform:none;te=
xt-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;=
font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;=
word-spacing:0px;white-space:normal">::</span><span style=3D"text-align:lef=
t;color:rgb(102,0,102);text-transform:none;text-indent:0px;letter-spacing:n=
ormal;font-family:Arial,Helvetica,sans-serif;font-style:normal;font-variant=
:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:n=
ormal">Bar</span><span style=3D"text-align:left;color:rgb(0,0,0);text-trans=
form:none;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica=
,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-deco=
ration:none;word-spacing:0px;white-space:normal"> </span><span style=3D"tex=
t-align:left;color:rgb(102,102,0);text-transform:none;text-indent:0px;lette=
r-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-style:normal;f=
ont-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;wh=
ite-space:normal">*</span><span style=3D"text-align:left;color:rgb(0,0,0);t=
ext-transform:none;text-indent:0px;letter-spacing:normal;font-family:Arial,=
Helvetica,sans-serif;font-style:normal;font-variant:normal;font-weight:400;=
text-decoration:none;word-spacing:0px;white-space:normal">_bar</span><span =
style=3D"text-align:left;color:rgb(102,102,0);text-transform:none;text-inde=
nt:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-serif;font-st=
yle:normal;font-variant:normal;font-weight:400;text-decoration:none;word-sp=
acing:0px;white-space:normal">;</span><span style=3D"text-align:left;color:=
rgb(0,0,0);text-transform:none;text-indent:0px;letter-spacing:normal;font-f=
amily:Arial,Helvetica,sans-serif;font-style:normal;font-variant:normal;font=
-weight:400;text-decoration:none;word-spacing:0px;white-space:normal"><br><=
/span><span style=3D"text-align:left;color:rgb(102,102,0);text-transform:no=
ne;text-indent:0px;letter-spacing:normal;font-family:Arial,Helvetica,sans-s=
erif;font-style:normal;font-variant:normal;font-weight:400;text-decoration:=
none;word-spacing:0px;white-space:normal">};</span></font></div></div></div=
></div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Wed, Feb 27, 2019=
 at 2:28 PM &lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-ma=
ilto=3D"4sZNWVaCAgAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;java=
script:&#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;ret=
urn true;">lucky.r...@gmail.com</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;padding-left:1ex;border-=
left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">=
<div dir=3D"ltr"><br><div>Hi</div><div><br></div><div>I would like to creat=
e a proposal to simplify class forward declarations using namespaces.</div>=
<div><br></div><div>Before I invest time into the proposal, I did like to k=
now if this kind of proposal was already discussed and/or rejected. My inte=
rnet search did not got any result, but this may be just the case because I=
 did not found the right keywords for my search.</div><div><br></div><div>M=
y core proposal is actually quite simple. If one is using libraries and nam=
espaces, a forward declaration of a class in a namespace is a common thing<=
/div><div><br></div><div style=3D"border:1px solid rgb(187,187,187);backgro=
und-color:rgb(250,250,250)"><code><div><span style=3D"color:rgb(0,0,136)">n=
amespace</span><span style=3D"color:rgb(0,0,0)"> ex </span><span style=3D"c=
olor:rgb(102,102,0)">{</span><span style=3D"color:rgb(0,0,0)"><br></span><s=
pan style=3D"color:rgb(0,0,136)">class</span><span style=3D"color:rgb(0,0,0=
)"> </span><span style=3D"color:rgb(102,0,102)">Foo</span><span style=3D"co=
lor:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"><br></span><sp=
an style=3D"color:rgb(0,0,136)">class</span><span style=3D"color:rgb(0,0,0)=
"> </span><span style=3D"color:rgb(102,0,102)">Bar</span><span style=3D"col=
or:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"><br></span><spa=
n style=3D"color:rgb(102,102,0)">}</span><span style=3D"color:rgb(0,0,0)"><=
br><br></span><span style=3D"color:rgb(0,0,136)">class</span><span style=3D=
"color:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,0,102)">Example</sp=
an><span style=3D"color:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,10=
2,0)">{</span><span style=3D"color:rgb(0,0,0)"><br>=C2=A0 ex</span><span st=
yle=3D"color:rgb(102,102,0)">::</span><span style=3D"color:rgb(102,0,102)">=
Foo</span><span style=3D"color:rgb(0,0,0)"> </span><span style=3D"color:rgb=
(102,102,0)">*</span><span style=3D"color:rgb(0,0,0)">_foo</span><span styl=
e=3D"color:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"><br>=C2=
=A0 ex</span><span style=3D"color:rgb(102,102,0)">::</span><span style=3D"c=
olor:rgb(102,0,102)">Bar</span><span style=3D"color:rgb(0,0,0)"> </span><sp=
an style=3D"color:rgb(102,102,0)">*</span><span style=3D"color:rgb(0,0,0)">=
_bar</span><span style=3D"color:rgb(102,102,0)">;</span><span style=3D"colo=
r:rgb(0,0,0)"><br></span><span style=3D"color:rgb(102,102,0)">};</span><spa=
n style=3D"color:rgb(0,0,0)"><br><br></span></div></code></div><div><br>Wit=
h nested namespace, this code gets worse:<br></div><div><br></div><div styl=
e=3D"border:1px solid rgb(187,187,187);background-color:rgb(250,250,250)"><=
code><div><span style=3D"color:rgb(0,0,136)">namespace</span><span style=3D=
"color:rgb(0,0,0)"> ex </span><span style=3D"color:rgb(102,102,0)">{</span>=
<span style=3D"color:rgb(0,0,0)"><br></span><span style=3D"color:rgb(0,0,13=
6)">namespace</span><span style=3D"color:rgb(0,0,0)"> foo </span><span styl=
e=3D"color:rgb(102,102,0)">{</span><span style=3D"color:rgb(0,0,0)"><br></s=
pan><span style=3D"color:rgb(0,0,136)">class</span><span style=3D"color:rgb=
(0,0,0)"> </span><span style=3D"color:rgb(102,0,102)">Foo</span><span style=
=3D"color:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"><br></sp=
an><span style=3D"color:rgb(102,102,0)">}</span><span style=3D"color:rgb(0,=
0,0)"><br></span><span style=3D"color:rgb(0,0,136)">namespace</span><span s=
tyle=3D"color:rgb(0,0,0)"> bar </span><span style=3D"color:rgb(102,102,0)">=
{</span><span style=3D"color:rgb(0,0,0)"><br></span><span style=3D"color:rg=
b(0,0,136)">class</span><span style=3D"color:rgb(0,0,0)"> </span><span styl=
e=3D"color:rgb(102,0,102)">Bar</span><span style=3D"color:rgb(102,102,0)">;=
</span><span style=3D"color:rgb(0,0,0)"><br></span><span style=3D"color:rgb=
(102,102,0)">}</span><span style=3D"color:rgb(0,0,0)"><br></span><span styl=
e=3D"color:rgb(102,102,0)">}</span><span style=3D"color:rgb(0,0,0)"><br><br=
></span><span style=3D"color:rgb(0,0,136)">class</span><span style=3D"color=
:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,0,102)">Example</span><sp=
an style=3D"color:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)">=
{</span><span style=3D"color:rgb(0,0,0)"><br>=C2=A0 ex</span><span style=3D=
"color:rgb(102,102,0)">::</span><span style=3D"color:rgb(0,0,0)">foo</span>=
<span style=3D"color:rgb(102,102,0)">::</span><span style=3D"color:rgb(102,=
0,102)">Foo</span><span style=3D"color:rgb(0,0,0)"> </span><span style=3D"c=
olor:rgb(102,102,0)">*</span><span style=3D"color:rgb(0,0,0)">_foo</span><s=
pan style=3D"color:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"=
><br>=C2=A0 ex</span><span style=3D"color:rgb(102,102,0)">::</span><span st=
yle=3D"color:rgb(0,0,0)">bar</span><span style=3D"color:rgb(102,102,0)">::<=
/span><span style=3D"color:rgb(102,0,102)">Bar</span><span style=3D"color:r=
gb(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)">*</span><span style=
=3D"color:rgb(0,0,0)">_bar</span><span style=3D"color:rgb(102,102,0)">;</sp=
an><span style=3D"color:rgb(0,0,0)"><br></span><span style=3D"color:rgb(102=
,102,0)">};</span><span style=3D"color:rgb(0,0,0)"><br><br></span></div></c=
ode></div><div><div><br></div><div>If namespaces in forward declarations wo=
uld be allowed, it would simplify the code:</div><div><br></div><div style=
=3D"border:1px solid rgb(187,187,187);background-color:rgb(250,250,250)"><c=
ode><div><span style=3D"color:rgb(0,0,136)">class</span><span style=3D"colo=
r:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)">::</span><span s=
tyle=3D"color:rgb(0,0,0)">ex</span><span style=3D"color:rgb(102,102,0)">::<=
/span><span style=3D"color:rgb(0,0,0)">foo</span><span style=3D"color:rgb(1=
02,102,0)">::</span><span style=3D"color:rgb(102,0,102)">Foo</span><span st=
yle=3D"color:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"><br><=
/span><span style=3D"color:rgb(0,0,136)">class</span><span style=3D"color:r=
gb(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)">::</span><span styl=
e=3D"color:rgb(0,0,0)">ex</span><span style=3D"color:rgb(102,102,0)">::</sp=
an><span style=3D"color:rgb(0,0,0)">bar</span><span style=3D"color:rgb(102,=
102,0)">::</span><span style=3D"color:rgb(102,0,102)">Bar</span><span style=
=3D"color:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)"><br><br>=
</span><span style=3D"color:rgb(0,0,136)">class</span><span style=3D"color:=
rgb(0,0,0)"> </span><span style=3D"color:rgb(102,0,102)">Example</span><spa=
n style=3D"color:rgb(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)">{=
</span><span style=3D"color:rgb(0,0,0)"><br>=C2=A0 ex</span><span style=3D"=
color:rgb(102,102,0)">::</span><span style=3D"color:rgb(0,0,0)">foo</span><=
span style=3D"color:rgb(102,102,0)">::</span><span style=3D"color:rgb(102,0=
,102)">Foo</span><span style=3D"color:rgb(0,0,0)"> </span><span style=3D"co=
lor:rgb(102,102,0)">*</span><span style=3D"color:rgb(0,0,0)">_foo</span><sp=
an style=3D"color:rgb(102,102,0)">;</span><span style=3D"color:rgb(0,0,0)">=
<br>=C2=A0 ex</span><span style=3D"color:rgb(102,102,0)">::</span><span sty=
le=3D"color:rgb(0,0,0)">bar</span><span style=3D"color:rgb(102,102,0)">::</=
span><span style=3D"color:rgb(102,0,102)">Bar</span><span style=3D"color:rg=
b(0,0,0)"> </span><span style=3D"color:rgb(102,102,0)">*</span><span style=
=3D"color:rgb(0,0,0)">_bar</span><span style=3D"color:rgb(102,102,0)">;</sp=
an><span style=3D"color:rgb(0,0,0)"><br></span><span style=3D"color:rgb(102=
,102,0)">};</span><span style=3D"color:rgb(0,0,0)"><br><br></span></div></c=
ode></div><div><br>Was this feature ever discussed? Was it rejected, and wh=
y?</div></div><div><br></div><div>All the best,</div><div>LR</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"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
4sZNWVaCAgAJ" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;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"4sZNWVaCAgAJ" rel=3D"nofollow" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;return true;">std-pr...@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/59af2837-0237-4cfa-8b89-dafc1b7a77c1%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/59af2837-0237-4cfa-8b89-dafc1b7a77c1%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/59af2837-0237-4cfa-8b89-dafc1b7a77c1%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/59af2837-0237-4cfa-<wbr>8b89-=
dafc1b7a77c1%40isocpp.org</a><wbr>.<br>
</blockquote></div>
</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/1d34154c-372c-4f07-934e-465aa2e151dc%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/1d34154c-372c-4f07-934e-465aa2e151dc=
%40isocpp.org</a>.<br />

------=_Part_2453_253653231.1551370110123--

------=_Part_2452_362069216.1551370110122--

.


Author: Victor Dyachenko <victor.dyachenko@gmail.com>
Date: Fri, 1 Mar 2019 01:36:57 -0800 (PST)
Raw View
------=_Part_181_1221505725.1551433017758
Content-Type: multipart/alternative;
 boundary="----=_Part_182_1853683372.1551433017758"

------=_Part_182_1853683372.1551433017758
Content-Type: text/plain; charset="UTF-8"

Forwarding namespaces is an orthogonal task. Why do we need it at all?

namespace ex::foo {}

And it's legal already.

About allowing namespaces in forward declarations I think that it's a good
idea. Missing this feature. It would be very handy.

--
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/9b6650c2-07ad-4837-9c3d-dc83328b3a57%40isocpp.org.

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

<div dir=3D"ltr"><div>Forwarding namespaces is an orthogonal task. Why do w=
e need it at all?</div><div><br></div><div><code><span style=3D"color:#008"=
>namespace</span><span style=3D"color:#000"> ex::</span><span style=3D"colo=
r:#000">foo </span><span style=3D"color:#660">{</span><span style=3D"color:=
#000">}</span></code></div><div><br></div><div>And it&#39;s legal already.<=
br></div><div><br><code></code></div><div>About allowing namespaces in forw=
ard declarations I think that it&#39;s a good idea. Missing this feature. I=
t would be very handy.<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/9b6650c2-07ad-4837-9c3d-dc83328b3a57%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/9b6650c2-07ad-4837-9c3d-dc83328b3a57=
%40isocpp.org</a>.<br />

------=_Part_182_1853683372.1551433017758--

------=_Part_181_1221505725.1551433017758--

.


Author: =?UTF-8?B?R2HFoXBlciBBxb5tYW4=?= <gasper.azman@gmail.com>
Date: Fri, 1 Mar 2019 09:46:15 +0000
Raw View
--000000000000eebbcc0583054747
Content-Type: text/plain; charset="UTF-8"

Namespaces and class names are in different... Name spaces. Even if you
forward declare a namespace it's not a given a prefix is in fact a
namespace. What we have is as good as it gets.

On Fri, Mar 1, 2019, 09:37 Victor Dyachenko <victor.dyachenko@gmail.com>
wrote:

> Forwarding namespaces is an orthogonal task. Why do we need it at all?
>
> namespace ex::foo {}
>
> And it's legal already.
>
> About allowing namespaces in forward declarations I think that it's a good
> idea. Missing this feature. It would be very handy.
>
> --
> 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/9b6650c2-07ad-4837-9c3d-dc83328b3a57%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9b6650c2-07ad-4837-9c3d-dc83328b3a57%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/CAANG%3DkVt%2Bp%2BbJUFpYQoyt5TDgeV8OgtT0sF0_D8rxuAdu9J4dA%40mail.gmail.com.

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

<div dir=3D"auto">Namespaces and class names are in different... Name space=
s. Even if you forward declare a namespace it&#39;s not a given a prefix is=
 in fact a namespace. What we have is as good as it gets.</div><br><div cla=
ss=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Mar 1, 201=
9, 09:37 Victor Dyachenko &lt;<a href=3D"mailto:victor.dyachenko@gmail.com"=
>victor.dyachenko@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-le=
ft:1ex"><div dir=3D"ltr"><div>Forwarding namespaces is an orthogonal task. =
Why do we need it at all?</div><div><br></div><div><code><span style=3D"col=
or:#008">namespace</span><span style=3D"color:#000"> ex::</span><span style=
=3D"color:#000">foo </span><span style=3D"color:#660">{</span><span style=
=3D"color:#000">}</span></code></div><div><br></div><div>And it&#39;s legal=
 already.<br></div><div><br><code></code></div><div>About allowing namespac=
es in forward declarations I think that it&#39;s a good idea. Missing this =
feature. It would be very handy.<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" rel=3D"noreferrer">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" rel=3D"noreferrer">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/9b6650c2-07ad-4837-9c3d-dc83328b3a57%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"noreferrer">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/9b6650c2-07ad-4837-9c3d-dc83328b3a57%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/CAANG%3DkVt%2Bp%2BbJUFpYQoyt5TDgeV8Og=
tT0sF0_D8rxuAdu9J4dA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoote=
r">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAANG%3DkVt=
%2Bp%2BbJUFpYQoyt5TDgeV8OgtT0sF0_D8rxuAdu9J4dA%40mail.gmail.com</a>.<br />

--000000000000eebbcc0583054747--

.


Author: tobias.erbsland@gmail.com
Date: Fri, 1 Mar 2019 01:51:01 -0800 (PST)
Raw View
------=_Part_200_182461891.1551433861651
Content-Type: multipart/alternative;
 boundary="----=_Part_201_1987354590.1551433861652"

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



> Even if you forward declare a namespace it's not a given a prefix is in=
=20
> fact a namespace.
>

Can you explain this in detail?

I would assume, if I declare a namespace:

namespace foo {}

In this scope, "foo" would be recognised as a namespace, so the following=
=20
forward declaration would be clear for the compiler.

class foo::Example;

What did I miss?=20


Am Freitag, 1. M=C3=A4rz 2019 10:46:31 UTC+1 schrieb Ga=C5=A1per A=C5=BEman=
:
>
> Namespaces and class names are in different... Name spaces. Even if you=
=20
> forward declare a namespace it's not a given a prefix is in fact a=20
> namespace. What we have is as good as it gets.
>
> On Fri, Mar 1, 2019, 09:37 Victor Dyachenko <victor.d...@gmail.com=20
> <javascript:>> wrote:
>
>> Forwarding namespaces is an orthogonal task. Why do we need it at all?
>>
>> namespace ex::foo {}
>>
>> And it's legal already.
>>
>> About allowing namespaces in forward declarations I think that it's a=20
>> good idea. Missing this feature. It would be very handy.
>>
>> --=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:>.
>> To view this discussion on the web visit=20
>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9b6650c2-07=
ad-4837-9c3d-dc83328b3a57%40isocpp.org=20
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9b6650c2-0=
7ad-4837-9c3d-dc83328b3a57%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoo=
ter>
>> .
>>
>

--=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/0f6ed84b-951e-49ca-a0de-7d684d6b6f6a%40isocpp.or=
g.

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

<div dir=3D"ltr"><div><br></div><blockquote class=3D"gmail_quote" style=3D"=
margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid=
; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">Even if you fo=
rward declare a namespace it&#39;s not a given a prefix is in fact a namesp=
ace.<br></blockquote><div><br></div><div>Can you explain this in detail?</d=
iv><div><br></div><div>I would assume, if I declare a namespace:</div><div>=
<br></div><div class=3D"prettyprint" style=3D"background-color: rgb(250, 25=
0, 250); border: 1px solid rgb(187, 187, 187); word-wrap: break-word;"><cod=
e class=3D"prettyprint"><div class=3D"subprettyprint"><span style=3D"color:=
 #008;" class=3D"styled-by-prettify">namespace</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify"> foo </span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">{}</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br></span></div></code></div><div><br>In this scop=
e, &quot;foo&quot; would be recognised as a namespace, so the following for=
ward declaration would be clear for the compiler.<br></div><div><br></div><=
div class=3D"prettyprint" style=3D"background-color: rgb(250, 250, 250); bo=
rder: 1px solid rgb(187, 187, 187); word-wrap: break-word;"><code class=3D"=
prettyprint"><div class=3D"subprettyprint"><span style=3D"color: #008;" cla=
ss=3D"styled-by-prettify">class</span><span style=3D"color: #000;" class=3D=
"styled-by-prettify"> foo</span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">::</span><span style=3D"color: #606;" class=3D"styled-by-pre=
ttify">Example</span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><=
/span></div></code></div><div><br>What did I miss?=C2=A0<br></div><div><br>=
</div><br>Am Freitag, 1. M=C3=A4rz 2019 10:46:31 UTC+1 schrieb Ga=C5=A1per =
A=C5=BEman:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left=
: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"auto">N=
amespaces and class names are in different... Name spaces. Even if you forw=
ard declare a namespace it&#39;s not a given a prefix is in fact a namespac=
e. What we have is as good as it gets.</div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr">On Fri, Mar 1, 2019, 09:37 Victor Dyachenko &lt;<a href=3D=
"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"ruyRX1y9AgAJ" rel=
=3D"nofollow" onmousedown=3D"this.href=3D&#39;javascript:&#39;;return true;=
" onclick=3D"this.href=3D&#39;javascript:&#39;;return true;">victor.d...@gm=
ail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"=
margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"=
ltr"><div>Forwarding namespaces is an orthogonal task. Why do we need it at=
 all?</div><div><br></div><div><code><span style=3D"color:#008">namespace</=
span><span style=3D"color:#000"> ex::</span><span style=3D"color:#000">foo =
</span><span style=3D"color:#660">{</span><span style=3D"color:#000">}</spa=
n></code></div><div><br></div><div>And it&#39;s legal already.<br></div><di=
v><br><code></code></div><div>About allowing namespaces in forward declarat=
ions I think that it&#39;s a good idea. Missing this feature. It would be v=
ery handy.<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"javascript:" rel=3D"nofollow" target=3D"_blank" gdf-obfu=
scated-mailto=3D"ruyRX1y9AgAJ" onmousedown=3D"this.href=3D&#39;javascript:&=
#39;;return true;" onclick=3D"this.href=3D&#39;javascript:&#39;;return true=
;">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" rel=3D"nofollo=
w" target=3D"_blank" gdf-obfuscated-mailto=3D"ruyRX1y9AgAJ" onmousedown=3D"=
this.href=3D&#39;javascript:&#39;;return true;" onclick=3D"this.href=3D&#39=
;javascript:&#39;;return true;">std-pr...@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/9b6650c2-07ad-4837-9c3d-dc83328b3a57%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow" t=
arget=3D"_blank" onmousedown=3D"this.href=3D&#39;https://groups.google.com/=
a/isocpp.org/d/msgid/std-proposals/9b6650c2-07ad-4837-9c3d-dc83328b3a57%40i=
socpp.org?utm_medium\x3demail\x26utm_source\x3dfooter&#39;;return true;" on=
click=3D"this.href=3D&#39;https://groups.google.com/a/isocpp.org/d/msgid/st=
d-proposals/9b6650c2-07ad-4837-9c3d-dc83328b3a57%40isocpp.org?utm_medium\x3=
demail\x26utm_source\x3dfooter&#39;;return true;">https://groups.google.com=
/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/9b6650c2-07ad-4837-<wbr>9c3d-=
dc83328b3a57%40isocpp.org</a><wbr>.<br>
</blockquote></div>
</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/0f6ed84b-951e-49ca-a0de-7d684d6b6f6a%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/0f6ed84b-951e-49ca-a0de-7d684d6b6f6a=
%40isocpp.org</a>.<br />

------=_Part_201_1987354590.1551433861652--

------=_Part_200_182461891.1551433861651--

.


Author: =?UTF-8?B?R2HFoXBlciBBxb5tYW4=?= <gasper.azman@gmail.com>
Date: Fri, 1 Mar 2019 09:55:36 +0000
Raw View
--00000000000041c55605830569f8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I seem to have been wrong. Seems like you can't declare a type with the
same name as a namespace. I was writing from a train, should have checked
on godbolt first :).

On Fri, Mar 1, 2019, 09:51 <tobias.erbsland@gmail.com> wrote:

>
> Even if you forward declare a namespace it's not a given a prefix is in
>> fact a namespace.
>>
>
> Can you explain this in detail?
>
> I would assume, if I declare a namespace:
>
> namespace foo {}
>
> In this scope, "foo" would be recognised as a namespace, so the following
> forward declaration would be clear for the compiler.
>
> class foo::Example;
>
> What did I miss?
>
>
> Am Freitag, 1. M=C3=A4rz 2019 10:46:31 UTC+1 schrieb Ga=C5=A1per A=C5=BEm=
an:
>>
>> Namespaces and class names are in different... Name spaces. Even if you
>> forward declare a namespace it's not a given a prefix is in fact a
>> namespace. What we have is as good as it gets.
>>
>> On Fri, Mar 1, 2019, 09:37 Victor Dyachenko <victor.d...@gmail.com>
>> wrote:
>>
>>> Forwarding namespaces is an orthogonal task. Why do we need it at all?
>>>
>>> namespace ex::foo {}
>>>
>>> And it's legal already.
>>>
>>> About allowing namespaces in forward declarations I think that it's a
>>> good idea. Missing this feature. It would be very handy.
>>>
>>> --
>>> 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-proposal...@isocpp.org.
>>> To post to this group, send email to std-pr...@isocpp.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9b6650c2-0=
7ad-4837-9c3d-dc83328b3a57%40isocpp.org
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9b6650c2-=
07ad-4837-9c3d-dc83328b3a57%40isocpp.org?utm_medium=3Demail&utm_source=3Dfo=
oter>
>>> .
>>>
>> --
> 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/0f6ed84b-951=
e-49ca-a0de-7d684d6b6f6a%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/0f6ed84b-95=
1e-49ca-a0de-7d684d6b6f6a%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/CAANG%3DkU79MNZ%3DqauB0rqQv0RWu3Wd53DOyHccxwce2j=
q4uJpvA%40mail.gmail.com.

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

<div dir=3D"ltr"><div>I seem to have been wrong. Seems like you can&#39;t d=
eclare a type with the same name as a namespace. I was writing from a train=
, should have checked on godbolt first :).</div></div><br><div class=3D"gma=
il_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Mar 1, 2019, 09:51 =
 &lt;<a href=3D"mailto:tobias.erbsland@gmail.com" target=3D"_blank">tobias.=
erbsland@gmail.com</a>&gt; wrote:<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"><div dir=3D"ltr"><div><br></div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,20=
4,204);padding-left:1ex">Even if you forward declare a namespace it&#39;s n=
ot a given a prefix is in fact a namespace.<br></blockquote><div><br></div>=
<div>Can you explain this in detail?</div><div><br></div><div>I would assum=
e, if I declare a namespace:</div><div><br></div><div class=3D"gmail-m_8698=
902363112912436m_1230693095632516697prettyprint" style=3D"background-color:=
rgb(250,250,250);border:1px solid rgb(187,187,187)"><code class=3D"gmail-m_=
8698902363112912436m_1230693095632516697prettyprint"><div class=3D"gmail-m_=
8698902363112912436m_1230693095632516697subprettyprint"><span style=3D"colo=
r:rgb(0,0,136)" class=3D"gmail-m_8698902363112912436m_1230693095632516697st=
yled-by-prettify">namespace</span><span style=3D"color:rgb(0,0,0)" class=3D=
"gmail-m_8698902363112912436m_1230693095632516697styled-by-prettify"> foo <=
/span><span style=3D"color:rgb(102,102,0)" class=3D"gmail-m_869890236311291=
2436m_1230693095632516697styled-by-prettify">{}</span><span style=3D"color:=
rgb(0,0,0)" class=3D"gmail-m_8698902363112912436m_1230693095632516697styled=
-by-prettify"><br></span></div></code></div><div><br>In this scope, &quot;f=
oo&quot; would be recognised as a namespace, so the following forward decla=
ration would be clear for the compiler.<br></div><div><br></div><div class=
=3D"gmail-m_8698902363112912436m_1230693095632516697prettyprint" style=3D"b=
ackground-color:rgb(250,250,250);border:1px solid rgb(187,187,187)"><code c=
lass=3D"gmail-m_8698902363112912436m_1230693095632516697prettyprint"><div c=
lass=3D"gmail-m_8698902363112912436m_1230693095632516697subprettyprint"><sp=
an style=3D"color:rgb(0,0,136)" class=3D"gmail-m_8698902363112912436m_12306=
93095632516697styled-by-prettify">class</span><span style=3D"color:rgb(0,0,=
0)" class=3D"gmail-m_8698902363112912436m_1230693095632516697styled-by-pret=
tify"> foo</span><span style=3D"color:rgb(102,102,0)" class=3D"gmail-m_8698=
902363112912436m_1230693095632516697styled-by-prettify">::</span><span styl=
e=3D"color:rgb(102,0,102)" class=3D"gmail-m_8698902363112912436m_1230693095=
632516697styled-by-prettify">Example</span><span style=3D"color:rgb(102,102=
,0)" class=3D"gmail-m_8698902363112912436m_1230693095632516697styled-by-pre=
ttify">;</span><span style=3D"color:rgb(0,0,0)" class=3D"gmail-m_8698902363=
112912436m_1230693095632516697styled-by-prettify"><br></span></div></code><=
/div><div><br>What did I miss?=C2=A0<br></div><div><br></div><br>Am Freitag=
, 1. M=C3=A4rz 2019 10:46:31 UTC+1 schrieb Ga=C5=A1per A=C5=BEman:<blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex"><div dir=3D"auto">Namespaces and c=
lass names are in different... Name spaces. Even if you forward declare a n=
amespace it&#39;s not a given a prefix is in fact a namespace. What we have=
 is as good as it gets.</div><br><div class=3D"gmail_quote"><div dir=3D"ltr=
">On Fri, Mar 1, 2019, 09:37 Victor Dyachenko &lt;<a rel=3D"nofollow norefe=
rrer">victor.d...@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex"><div dir=3D"ltr"><div>Forwarding namespaces is a=
n orthogonal task. Why do we need it at all?</div><div><br></div><div><code=
><span style=3D"color:rgb(0,0,136)">namespace</span><span style=3D"color:rg=
b(0,0,0)"> ex::</span><span style=3D"color:rgb(0,0,0)">foo </span><span sty=
le=3D"color:rgb(102,102,0)">{</span><span style=3D"color:rgb(0,0,0)">}</spa=
n></code></div><div><br></div><div>And it&#39;s legal already.<br></div><di=
v><br><code></code></div><div>About allowing namespaces in forward declarat=
ions I think that it&#39;s a good idea. Missing this feature. It would be v=
ery handy.<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 rel=3D"nofollow noreferrer">std-proposal...@isocpp.org</a>.<br>
To post to this group, send email to <a rel=3D"nofollow noreferrer">std-pr.=
...@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/9b6650c2-07ad-4837-9c3d-dc83328b3a57%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"nofollow no=
referrer" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/=
std-proposals/9b6650c2-07ad-4837-9c3d-dc83328b3a57%40isocpp.org</a>.<br>
</blockquote></div>
</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" rel=3D"nore=
ferrer" 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" rel=3D"noreferrer" 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/0f6ed84b-951e-49ca-a0de-7d684d6b6f6a%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"noreferrer"=
 target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/0f6ed84b-951e-49ca-a0de-7d684d6b6f6a%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/CAANG%3DkU79MNZ%3DqauB0rqQv0RWu3Wd53D=
OyHccxwce2jq4uJpvA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAANG%3DkU79M=
NZ%3DqauB0rqQv0RWu3Wd53DOyHccxwce2jq4uJpvA%40mail.gmail.com</a>.<br />

--00000000000041c55605830569f8--

.