Jump to page: 1 2
Thread overview
[D1] type of type
Dec 23, 2010
%u
Dec 23, 2010
%u
Dec 23, 2010
Denis Koroskin
Dec 23, 2010
%u
Dec 24, 2010
bearophile
Dec 29, 2010
%u
Dec 29, 2010
%u
Dec 30, 2010
%u
December 23, 2010
Is it possible to give a function a class(type) as an argument such that the function can call its constructor, without using templates.

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

Or, what is the type of a type? :)
December 23, 2010
Should have been this:

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


December 23, 2010
On Fri, 24 Dec 2010 01:28:49 +0300, %u <e@ee.com> wrote:

> Should have been this:
>
> void func(type t){
>   new t();
> }
>
>

Try this (not tested):

class Test {}
Object o = Object.factory("Test");
December 23, 2010
== Quote from Denis Koroskin (2korden@gmail.com)'s article
> On Fri, 24 Dec 2010 01:28:49 +0300, %u <e@ee.com> wrote:
> > Should have been this:
> >
> > void func(type t){
> >   new t();
> > }
> >
> >
> Try this (not tested):
> class Test {}
> Object o = Object.factory("Test");

Thanks,
Hiding in Object.. interesting :)
Making the type a string, does this make using small class names more efficient?

December 24, 2010
%u:

> Hiding in Object.. interesting :)

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

Bye,
bearophile
December 27, 2010
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
December 29, 2010
== Quote from Steven Schveighoffer (schveiguy@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.
December 29, 2010
On Wed, 29 Dec 2010 10:33:21 -0500, %u <e@ee.com> wrote:

> == Quote from Steven Schveighoffer (schveiguy@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
December 29, 2010
== Quote from Steven Schveighoffer (schveiguy@yahoo.com)'s article
> On Wed, 29 Dec 2010 10:33:21 -0500, %u <e@ee.com> wrote:
> > == Quote from Steven Schveighoffer (schveiguy@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?
December 30, 2010
Is it not possible to have a "type" type?


« First   ‹ Prev
1 2