The new invariant.
Andrei Alexandrescu (See Website For Email)
SeeWebsiteForEmail at erdani.org
Sun Mar 25 08:30:51 PDT 2007
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.
> 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.
> It'd be beautiful. Though I still worry a little about the current
> invariant{} contract being broken.
We're looking into it.
Andrei
More information about the Digitalmars-d
mailing list