readonly storage class

Benjamin Thaut code at benjamin-thaut.de
Sun Apr 8 02:16:40 PDT 2012


While typing D code I usually come across the problem that neither const 
nor immutable describe the usage pattern of the memory I'm currently 
working on 100%. Sometimes I have immutable data that has been shared 
among threads that I want to pass to a function. Then I have some const 
data that I want to pass to the same function. Currently you don't have 
any other choice but to write that function two times. But the function 
itself does not need the "extended" properties of const or immutable:

const: can be casted back to mutable
immutable: can be implicitly shared among threads

The only thing the function cares about is, that it will not change the 
data passed to it. It would be kind of nice to have a thrid storage 
class "readonly". It can not be casted back to mutable and it can not be 
implicitly shared among threads, but both const and immutable implicitly 
convert to readonly, because both of these storage classes lose one of 
their properties during conversion. That way you only have to write the 
function once and can pass both const and immutable data to it.

Just an idea, comments and critics welcome.

-- 
Kind Regards
Benjamin Thaut


More information about the Digitalmars-d mailing list