Debug help - opDispatch - unknown member function

monkyyy crazymonkyyy at gmail.com
Tue Sep 9 01:24:59 UTC 2025


On Tuesday, 9 September 2025 at 01:08:41 UTC, Brother Bill wrote:
> On Tuesday, 9 September 2025 at 00:45:00 UTC, monkyyy wrote:
>> On Tuesday, 9 September 2025 at 00:40:31 UTC, Brother Bill 
>> wrote:
>>> https://tour.dlang.org/tour/en/gems/opdispatch-opapply
>>>
>>> This states: "Any unknown member function call to that type 
>>> is passed to opDispatch, passing the unknown member 
>>> function's name as a string template parameter."
>>>
>>> [...]
>>
>> you didnt define "callhome" so the the mixin fails, this 
>> propagates a "__error" or something, and opDispatch when it 
>> contains an error doesnt pass it up the stack
>
> Then I'm not clear what an "unknown" member function name means.
>
> Kindly provide an example.

```d
import std;
struct Vector(int N,T,string fields){
	static foreach(I;0..N){
		mixin("T "~fields[I]~";");
	}
	auto opDispatch(string __s__)(){//I suggest a habit of avoiding 
simple names when generating mixin code
		return mixin((){
			string output="tuple(";
			foreach(C;__s__){
				output~=C;
				output~=',';
			}
			output~=")";
			return output;
		}());
	}
}
unittest{
	Vector!(3,int,"xyz") foo;
	foo.x=5;
	foo.y=3;
	foo.yx.writeln;
	Vector!(4,ubyte,"rgba") bar;
	bar.bgr.writeln;
}
```


More information about the Digitalmars-d-learn mailing list