Simulating reference variables using `alias this`

MrSmith via Digitalmars-d digitalmars-d at puremagic.com
Wed May 10 10:48:53 PDT 2017


On Wednesday, 10 May 2017 at 17:12:11 UTC, Carl Sturtivant wrote:
> Here's the beginning of an interesting little experiment to 
> simulate reference variables using `alias this` to disguise a 
> pointer as a reference. Could add a destructor to set the 
> pointer to null when a reference goes out of scope.
> ...

I've used this code for similar purpose:

alias TextEditorSettingsRef = TextEditorSettings*;
alias TextEditorSettingsConstRef = const(TextEditorSettings)*;
struct TextEditorSettings
{}

But you need to have two aliases (templates) for const and 
non-const refs, since using:
const TextEditorSettingsRef editor;
does:
const(TextEditorSettings*)
not
const(TextEditorSettings)*

What do you think?




More information about the Digitalmars-d mailing list