boost crowd.
so
so at so.so
Mon Nov 28 01:56:33 PST 2011
On Mon, 28 Nov 2011 09:40:06 +0200, Alexey Veselovsky
<alexey.veselovsky at gmail.com> wrote:
> Now, let's try this on D:
>
> // Implementation
> module test;
>
> public {
> void foo() {foo_helper();}
>
> struct Boo
> {
> public:
> void boo() {S ss; foo_helper();}
> private:
> struct S {};
> }
> }
>
> private {
> struct HelperStruct {};
> void foo_helper() {HelperStruct s;}
> }
>
> // Specification (generated by dmd -H test.d -c) -- test.di file
> // D import file generated from 'test.d'
> module test;
> public
> {
> void foo() {foo_helper();}
>
> struct Boo
> {
> public
> {
> void boo() {S ss; foo_helper();}
> private struct S{}
> }
> }
> }
>
> private
> {
> struct HelperStruct{}
> void foo_helper(){HelperStruct s;}
> }
>
> Usage:
> import test;
>
> void main() {
> foo(); // ok
> Boo b; // ok
> b.boo(); // ok
> Boo.S ss; // ok (wtf?)
> HelperStruct s; // ok (wtf?!)
> }
You are right, i can't see anything that requires "not one" of those
private stuff to be exposed.
This has to be a bug.
More information about the Digitalmars-d
mailing list