How to partially forward properties of struct array member to struct (disable length property) ?
bioinfornatics via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Sep 6 01:48:31 PDT 2015
On Sunday, 6 September 2015 at 07:34:36 UTC, ParticlePeter wrote:
> I am working on a struct vector. The data is stored in a member
> static array and I want to be able to forward all array
> properties except length to vector.
> Reason is I have free functions f that take vector(s) as
> arguments, such that f(vector) and vector.f via UFCS is
> possible. Using alias array this in the case of length
> function/array property is problematic, as length(vector)
> obviously uses the free function but vector.length the array
> property.
>
> What would be the simplest way to disable the array.length
> property for the vector struct?
>
> I would prefer not to implement length as a vector member
> function and call it inside the free function as this is
> inconsistent with the other free funcs.
Hi,
If you are looking for somethin like delegator from ruby:
http://ruby-doc.org/stdlib-2.0.0/libdoc/forwardable/rdoc/Forwardable.html
they are in D template proxy;
http://dlang.org/phobos/std_typecons.html#.Proxy
Or by using mixin delegates:
http://forum.dlang.org/post/jitn9v$20u4$1@digitalmars.com
More information about the Digitalmars-d-learn
mailing list