Re: [D1] type of type

2010-12-30 Thread Steven Schveighoffer

On Wed, 29 Dec 2010 19:25:05 -0500, %u e...@ee.com wrote:


Is it not possible to have a type type?


In compile time, you can have type parameters with ease using templates.

During runtime, you can use the TypeInfo object, which is accessed via  
typeid:


auto ti = typeid(int); // ti is TypeInfo type

See docs for TypeInfo in object.di

Now, the only issue with TypeInfo is that D runtime reflection is woefully  
supported.  You can't do much with a TypeInfo.


So again, what is it you want to do with the type type?

-Steve


Re: [D1] type of type

2010-12-29 Thread %u
== Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article
 On Thu, 23 Dec 2010 17:28:49 -0500, %u e...@ee.com wrote:
  Should have been this:
 
  void func(type t){
new t();
  }
 void func(T)(){
 new T();
 }
 When you are passing types into functions, use templates.
 -Steve

The reason I asked for a non-templated solution is because they don't have a
common interface signature.


Re: [D1] type of type

2010-12-29 Thread Steven Schveighoffer

On Wed, 29 Dec 2010 10:33:21 -0500, %u e...@ee.com wrote:


== Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article

On Thu, 23 Dec 2010 17:28:49 -0500, %u e...@ee.com wrote:
 Should have been this:

 void func(type t){
   new t();
 }
void func(T)(){
new T();
}
When you are passing types into functions, use templates.
-Steve


The reason I asked for a non-templated solution is because they don't  
have a

common interface signature.


I don't know what you mean.  Templated solution does not require a common  
interface.  This works with any type:


void func(T)(){
   T t;
}

Maybe you can post an example of what you are trying to solve?

-Steve


Re: [D1] type of type

2010-12-29 Thread %u
== Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article
 On Wed, 29 Dec 2010 10:33:21 -0500, %u e...@ee.com wrote:
  == Quote from Steven Schveighoffer (schvei...@yahoo.com)'s article
  On Thu, 23 Dec 2010 17:28:49 -0500, %u e...@ee.com wrote:
   Should have been this:
  
   void func(type t){
 new t();
   }
  void func(T)(){
  new T();
  }
  When you are passing types into functions, use templates.
  -Steve
 
  The reason I asked for a non-templated solution is because they don't
  have a
  common interface signature.
 I don't know what you mean.  Templated solution does not require a common
 interface.  This works with any type:
 void func(T)(){
 T t;
 }
 Maybe you can post an example of what you are trying to solve?
 -Steve

Yeah, sorry, I meant it the other way around: I need a common interface.

class C1: I
..
class C9: I

I'd like to pass any C(a) type to any C(b) object such that C(b) can spawn a 
C(a).
What would be the common signature of these two functions?
And how would the object save the type?


Re: [D1] type of type

2010-12-29 Thread %u
Is it not possible to have a type type?




Re: [D1] type of type

2010-12-27 Thread Steven Schveighoffer

On Thu, 23 Dec 2010 17:28:49 -0500, %u e...@ee.com wrote:


Should have been this:

void func(type t){
  new t();
}


void func(T)(){
   new T();
}

When you are passing types into functions, use templates.

-Steve


Re: [D1] type of type

2010-12-24 Thread bearophile
%u:

 Hiding in Object.. interesting :)

But this has strong limitations. For this problem templates are usually used.

Bye,
bearophile


Re: [D1] type of type

2010-12-23 Thread %u
Should have been this:

void func(type t){
  new t();
}