Immutability and other attributes, please review

dennis luehring dl.soluz at gmx.net
Fri Jun 15 01:30:48 PDT 2012


Am 15.06.2012 08:25, schrieb Jacob Carlborg:
> On 2012-06-14 17:32, Roman D. Boiko wrote:
>
>> I agree, just looking how to accomplish my goals. I decided to get rid
>> of casting, and will store everything on heap. I don't know how to put a
>> variable of type float to the heap, and thought that it would be nice to
>> allow the user to pass anything inside, but copy when that is not an
>> l-value.
>
> Do you really need to put a float on the heap? Just pass it around as a
> value type, it's not like it's a big struct.
>

i think he needs to - else he encapsulate the float into an struct which 
is then also on the heap

(ast/whatever)
   nodex -> float
     nodey -> string
   nodez -> int
   nodew -> double

etc.

in this example a node can contain from n types values - how would you 
solve that? or better what is the smallest(maybe fastest) representation

there need to be a queryable tree in the end - so there is a need to 
hold the values - yes he can copy by value - but into whom?

in the end it will be an variant-like type (with members for each type) 
on heap - whichs is not that good because that will cost much more mem

or something like an class FloatValue -> NodeValue -> Value oop-hierachy 
whichs also will get onto the heap

i would try to use something like an base-types pool for all the small
float,double,int,string etc values... and pointer to this pool - or just 
use the heap :)



More information about the Digitalmars-d-learn mailing list