Type constructor is a language construct that literally constructs a
type (not a value), usually from one or more types. E.g. T[K] is a type
constructor - given types T and K, constructs the type hash map etc.
So "new const(C)" is not a type constructor, it's at best an expression
that constructs a value. "const(C)" is a type constructor that takes a
type C and constructs a new type.
Type modifier is loosely-defined as a type constructor that takes one
type and alters its properties just a bit.
Andrei
On 6/2/13 7:35 PM, Andrej Mitrovic wrote:
On 6/3/13, Andrei Alexandrescu<[email protected]> wrote:
I think I have an understanding how that dual nature works for C++, but
not in D. Could you please give more detail. Then we can merge that with
the documentation, so you wouldn't have wasted time.
Oh yes, and then you can close this:
http://d.puremagic.com/issues/show_bug.cgi?id=9970
But from my limited understanding:
new const(C) -> type constructor
cast(const(C))(new C) -> type modifier
void foo(const(C)) -> type modifier
Correct? No?
_______________________________________________
dmd-beta mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/dmd-beta
_______________________________________________
dmd-beta mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/dmd-beta