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