On 1/2/19 12:38 PM, IM wrote:
2- Yesterday I was experimenting with something and I wrote something
like the following:
struct MyType {
...
}
void doSomeWork(ref MyType o) {
...
}
auto t = MyType(...);
t.doSomeWork(); // <-- failed to compile.
Why did the above UFCS call fail to compile? I had to do doSomeWork(t)
instead.
With those ... I have to guess.
There are 2 possibilities.
Possibility 1: there is a method named 'doSomeWork' which takes at least
one parameter. This overrides the UFCS function (member functions always
win over UFCS).
Possibility 2: All this is actually inside a function or unittest.
Nested functions cannot participate in UFCS.
Of course, these are guesses. But given the very scant code above, I'm
not sure I could offer any other suggestions. If neither of those is the
case, I'd need a working example.
-Steve