Thread overview | |||||
---|---|---|---|---|---|
|
February 07, 2007 Tuple as Property Parameter | ||||
---|---|---|---|---|
| ||||
I have a few [newcomer] questions about Tuples that I hope are easy to answer. What I am trying to create is a property that accepts any tuple: template Tuple( E... ) { alias E Tuple; } class Foo { int bar( E... )( E e ) { ... } } Foo f = new Foo(); f.bar( 1, 2 ); // Works properly f.bar( Tuple!( 1, 2 ) ); // Works properly f.bar = Tuple!( 1, 2 ); // Error: Error: (f).bar(E...) has no value Is this intended? How can I wrap up the Tuple into a single object so it will pass off as a property? Changing 'bar' to 'opAssign' yields a different result for the third example. Instead of printing out an error I get an alert "abnormal program termination." Also, is there, or will there ever be a bracket sequence for initializing Tuples? Tuple!( a, b, c, ... ) into something like ![ a, b, c, ... ]? Thanks, Brian Byrne |
February 07, 2007 Re: Tuple as Property Parameter | ||||
---|---|---|---|---|
| ||||
Posted in reply to Brian Byrne | Reply to Brian,
> I have a few [newcomer] questions about Tuples that I hope are easy to
> answer. What I am trying to create is a property that accepts any
> tuple:
>
> template Tuple( E... ) {
> alias E Tuple;
> }
> class Foo {
> int bar( E... )( E e ) {
> ...
> }
> }
> Foo f = new Foo();
> f.bar( 1, 2 ); // Works properly
> f.bar( Tuple!( 1, 2 ) ); // Works properly
> f.bar = Tuple!( 1, 2 ); // Error: Error: (f).bar(E...) has no value
> Is this intended? How can I wrap up the Tuple into a single object so
> it will pass off as a property?
>
> Changing 'bar' to 'opAssign' yields a different result for the third
> example. Instead of printing out an error I get an alert "abnormal
> program termination."
>
> Also, is there, or will there ever be a bracket sequence for
> initializing Tuples? Tuple!( a, b, c, ... ) into something like ![ a,
> b, c, ... ]?
>
> Thanks,
> Brian Byrne
For one thing, I'm not sure that any of those should work. Template members are invalid last time I checked.
|
February 07, 2007 Re: Tuple as Property Parameter | ||||
---|---|---|---|---|
| ||||
Posted in reply to BCS | BCS wrote: > Reply to Brian, > >> I have a few [newcomer] questions about Tuples that I hope are easy to >> answer. What I am trying to create is a property that accepts any >> tuple: >> >> template Tuple( E... ) { >> alias E Tuple; >> } >> class Foo { >> int bar( E... )( E e ) { >> ... >> } >> } >> Foo f = new Foo(); >> f.bar( 1, 2 ); // Works properly >> f.bar( Tuple!( 1, 2 ) ); // Works properly >> f.bar = Tuple!( 1, 2 ); // Error: Error: (f).bar(E...) has no value >> Is this intended? How can I wrap up the Tuple into a single object so >> it will pass off as a property? >> >> Changing 'bar' to 'opAssign' yields a different result for the third >> example. Instead of printing out an error I get an alert "abnormal >> program termination." >> >> Also, is there, or will there ever be a bracket sequence for >> initializing Tuples? Tuple!( a, b, c, ... ) into something like ![ a, >> b, c, ... ]? >> >> Thanks, >> Brian Byrne > > For one thing, I'm not sure that any of those should work. Template members are invalid last time I checked. > > Template member functions work (and have for some time), they're just implicitly final. -- Kirk McDonald Pyd: Wrapping Python with D http://pyd.dsource.org |
Copyright © 1999-2021 by the D Language Foundation