Thread overview
opCall() in structures
Dec 09, 2007
Jesse Phillips
Dec 09, 2007
Mike
Dec 10, 2007
Jesse Phillips
December 09, 2007
Trying out the example code for opCall and I get a linker error in linux. (dmd 1.024)

struct F
{
    int opCall();
    int opCall(int x, int y, int z);
}

void test()
{   F f;
    int i;

    i = f();     	// same as i = f.opCall();
    i = f(3,4,5);	// same as i = f.opCall(3,4,5);
}

void main() {
    test()
}
December 09, 2007
On Sun, 09 Dec 2007 21:42:44 +0100, Jesse Phillips <jessekphillips@gmail.com> wrote:

You need to have the function bodies somewhere too of course:

struct F
{
	int opCall() { return 42; }
}

-Mike

> Trying out the example code for opCall and I get a linker error in linux.
> (dmd 1.024)
>
> struct F
> {
>     int opCall();
>     int opCall(int x, int y, int z);
> }
>
> void test()
> {   F f;
>     int i;
>
>     i = f();     	// same as i = f.opCall();
>     i = f(3,4,5);	// same as i = f.opCall(3,4,5);
> }
>
> void main() {
>     test()
> }



-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
December 10, 2007
On Sun, 09 Dec 2007 22:02:53 +0100, Mike wrote:

> On Sun, 09 Dec 2007 21:42:44 +0100, Jesse Phillips <jessekphillips@gmail.com> wrote:
> 
> You need to have the function bodies somewhere too of course:
> 
> struct F
> {
> 	int opCall() { return 42; }
> }
> 
> -Mike
> 
>> Trying out the example code for opCall and I get a linker error in
>> linux. (dmd 1.024)
>>
>> struct F
>> {
>>     int opCall();
>>     int opCall(int x, int y, int z);
>> }
>>
>> void test()
>> {   F f;
>>     int i;
>>
>>     i = f();     	// same as i = f.opCall(); i = f
(3,4,5);	// same as i
>>     = f.opCall(3,4,5);
>> }
>>
>> void main() {
>>     test()
>> }

Yeah, good idea, thanks.