digitalmars.D.learn - Tuple as Property Parameter
- Brian Byrne (23/23) Feb 06 2007 I have a few [newcomer] questions about Tuples that I hope are easy to
- BCS (3/32) Feb 06 2007 For one thing, I'm not sure that any of those should work. Template memb...
- Kirk McDonald (7/43) Feb 06 2007 Template member functions work (and have for some time), they're just
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
Feb 06 2007
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 ByrneFor one thing, I'm not sure that any of those should work. Template members are invalid last time I checked.
Feb 06 2007
BCS wrote:Reply to Brian,Template member functions work (and have for some time), they're just implicitly final. -- Kirk McDonald Pyd: Wrapping Python with D http://pyd.dsource.orgI 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 ByrneFor one thing, I'm not sure that any of those should work. Template members are invalid last time I checked.
Feb 06 2007