The new invariant.
Chris Nicholson-Sauls
ibisbasenji at gmail.com
Sun Mar 25 00:55:51 PDT 2007
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?
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()?
This would be quite nifty for one of my projects, if it works like I expect.
private static invariant(Symbol)[invariant(char[])] pool ;
It'd be beautiful. Though I still worry a little about the current invariant{} contract
being broken.
-- Chris Nicholson-Sauls
More information about the Digitalmars-d
mailing list