Tuple as Property Parameter

Brian Byrne bdbyrne at wisc.edu
Tue Feb 6 16:53:18 PST 2007


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


More information about the Digitalmars-d-learn mailing list