Voldemort type for mixin template.

aliak something at something.com
Thu Jan 11 21:30:43 UTC 2018


On Thursday, 11 January 2018 at 08:56:11 UTC, ChangLong wrote:
> When I try add some sub type for struct with mixin template, 
> seems there is no way to hidden the private type.
>
> Is there a way to hidden type from mix template like Voldemort 
> type ?
>
> fake code:
>
> mix template TypeX () {
>     alias This = typeof(this);
>
>     static struct Unique {
>        This* _ptr ;
>     }
>     static struct Helper {
>           private Unique data;
>      }
>      alias TypeX = {
>          alias PublicName = Helper ;
>      }
> }
>
> struct Node {
>     mixin TypeX!();
>     PublicName helper;
> }

Hi, can you explain a bit more? The question is not entirely 
clear to me. Can you mixin a struct of type PublicName and just 
hide everything in there?

mixin template TypeX() {
     struct PublicName {
         private alias This = typeof(this);
         private struct Unique {
			This* _ptr;
		}
         private Unique _data;
         alias _data this;
     }
}

void main(string[] args) {
     mixin TypeX;
     PublicName helper;
     helper._ptr.writeln;
}

Cheers



More information about the Digitalmars-d-learn mailing list