www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - alias & typedef

reply Heinz <billgates microsoft.com> writes:
Hi,

I just wan't to know the differences between 'alias' and 'typedef' as both do
the same thing.

Thanks
Jan 09 2007
next sibling parent Kirk McDonald <kirklin.mcdonald gmail.com> writes:
Heinz wrote:
 Hi,
 
 I just wan't to know the differences between 'alias' and 'typedef' as both do
 the same thing.
 
 Thanks

Aliases provide another name for an existing type. Typedefs declare a new type which happens to be identical to an existing type. This can matter in function overloading, for instance: alias int IntAlias; typedef int IntTypedef; void foo(int i) { } // #1 void foo(IntAlias i) { } // #2 ERROR: Ambiguous with #1 void foo(IntTypedef i) { } // #3 Okay void main() { int i = 1; IntAlias j = 2; IntTypedef k = 3; foo(i); // ERROR: Call #1 or #2? foo(j); // ERROR: Call #1 or #2? foo(k); // Okay, call #3 } -- Kirk McDonald Pyd: Wrapping Python with D http://pyd.dsource.org
Jan 09 2007
prev sibling parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Heinz wrote:
 Hi,
 
 I just wan't to know the differences between 'alias' and 'typedef' as both do
 the same thing.

I think the spec is pretty clear: http://www.digitalmars.com/d/declaration.html#typedef Have you read that yet? --bb
Jan 09 2007
parent Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
Bill Baxter wrote:
 Heinz wrote:
 Hi,

 I just wan't to know the differences between 'alias' and 'typedef' as 
 both do
 the same thing.

I think the spec is pretty clear: http://www.digitalmars.com/d/declaration.html#typedef Have you read that yet?

And read the next few sections too. For example, nobody has yet mentioned that alias is useful for more than just types.
Jan 10 2007