Thread overview | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
December 23, 2010 [D1] type of type | ||||
---|---|---|---|---|
| ||||
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 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to %u | Should have been this: void func(type t){ new t(); } |
December 23, 2010 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to %u | 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 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to Denis Koroskin | == 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 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to %u | %u:
> Hiding in Object.. interesting :)
But this has strong limitations. For this problem templates are usually used.
Bye,
bearophile
|
December 27, 2010 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to %u | 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 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | == 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 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to %u | 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 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | == 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 Re: [D1] type of type | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | Is it not possible to have a "type" type? |
Copyright © 1999-2021 by the D Language Foundation