On Thursday, 10 May 2018 at 14:28:39 UTC, JN wrote:
On Thursday, 10 May 2018 at 14:15:18 UTC, Yuxuan Shui wrote:
[...]
For things like this you can use the OOP Factory pattern,
pseudocode:
class DataStructureFactory
{
this(Allocator alloc)
{
this.alloc = alloc;
}
Allocator alloc;
DataStructure createDataStructure(...)
{
return new DataStructure(..., alloc)
}
}
DataStructureFactory factory = new DataStructureFactory(new
SomeAllocator())
auto data1 = factory.createDataStructure(...)
auto data2 = factory.createDataStructure(...)
auto data3 = factory.createDataStructure(...)
But doing it with default argument expansion saves you 1
allocation, has 1 less type, while being just as readable. I
think that's a win.