On 6/15/25 9:06 AM, Steven Schveighoffer wrote:
On Monday, 9 June 2025 at 07:24:41 UTC, confuzzled wrote:
Hello community,

Is it possible to accomplish the following using ref instead of pointers? If so, please share an example.


A ref cannot be a member of a type. But ref can be returned by a function.

So what you want is a *property* function:

```d
struct Engine
{
     private const(DataSource)* _dataSourceStorage;

     this(ref const(DataSource) dataSource)
     {
         this._dataSourceStorage = &dataSource;
     }

     @property ref dataSource() => *_dataSourceStorage;

     ... // rest the same
}

...

void main()
{
     auto myData = DataSource([10, 20, 30]);
     auto myEngine = Engine(myData); // initialize via ref
     ...
}
```

-Steve


This is perfect. Thanks Steve. I had all but given up on this.

Reply via email to