The new invariant.

Chris Nicholson-Sauls ibisbasenji at gmail.com
Sun Mar 25 13:20:03 PDT 2007


Andrei Alexandrescu (See Website For Email) wrote:
> Chris Nicholson-Sauls wrote:
>> A couple of quick questions about the upcoming 'invariant' type 
>> constructor.  Given a class Foo, will there be a way to mark the class 
>> as having only invariant instances?  Ie can I declare it as 'invariant 
>> class Foo {}' much as 'scope class Foo {}' would make it RAII-only?
> 
> Yes.

Nice.

>> Second, say I want to make an associative array of invariant Foo 
>> instances.  How would I declare this?  (Let's use int as the key type, 
>> for simplicity.)
>> invariant Foo[int] pool ; // reads to me as the AA type is invariant, 
>> which is useless
>> invariant(Foo)[int] pool ; // perhaps?  like with the new const()?
> 
> The latter.
> 
>> This would be quite nifty for one of my projects, if it works like I 
>> expect.
>>
>> private static invariant(Symbol)[invariant(char[])] pool ;
> 
> That too. Possibly we'll also alias invariant(char[]) to string.
> 

Sweet.  This sort of thing alone will make the new const'ness material well worthwhile for 
myself.

-- Chris Nicholson-Sauls



More information about the Digitalmars-d mailing list