[Mono-list] (Generics) type parameters and pointers
Martin Baulig
martin@ximian.com
Wed, 28 Jul 2004 15:26:04 +0200
On Sun, 2004-07-25 at 13:51 +0000, Alan Jenkins wrote:
> I know type parameters cannot be pointers - ArrayList<int*> is not permitted -
> but I haven't been able to a definitive statement regarding whether pointers
> to the type of a parameter is permitted, e.g.
>
> struct Pointer <T> {
> T* value;
> }
>
> Currently, gmcs will complain that it can't find the type "T*", but I would
> have thought it would be relatively easy to allow, given that the following
> is allowed.
>
> struct Array <T> {
> T[] value;
> }
Hello,
according to the spec (25.2), you can only take a pointer of an
unmanaged type, not a managed one.
csc says
> $ csc /unsafe C.cs
> Microsoft (R) Visual C# .NET Compiler version 8.00.40607.16
> for Microsoft (R) Windows (R) .NET Framework version 2.0.40607
> Copyright (C) Microsoft Corporation 2001-2003. All rights reserved.
>
> C.cs(3,5): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('T')
> C.cs(1,23): (Location of symbol related to previous error)
I'll fix gmcs to report the same error.
Martin