alias & typedef

Kirk McDonald kirklin.mcdonald at gmail.com
Tue Jan 9 18:05:19 PST 2007


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


More information about the Digitalmars-d-learn mailing list