ADL
Manu via Digitalmars-d
digitalmars-d at puremagic.com
Sat Sep 3 08:34:14 PDT 2016
On 3 September 2016 at 21:24, Walter Bright via Digitalmars-d
<digitalmars-d at puremagic.com> wrote:
> On 9/3/2016 3:12 AM, Walter Bright wrote:
>>
>> If you are still determined to use it, you can use:
>>
>> __traits(compiles, ...)
>>
>> like you would SFINAE in C++ to select which of the modules from the
>> argument
>> types selects a function that compiles.
>
>
> Eh, I realized it's simpler than that. Based on the code I already
> presented, each argument can be used to generate an import for its
> corresponding version of the function. Then, overloading rules apply and it
> works. Something like:
>
> Something like:
>
> void foo(T,U)(T t, U u)
> {
> alias func = ModuleOf!T.func;
> alias func = ModuleOf!U.func;
>
> func(t, u);
> }
And if either module doesn't have an instance of func?
More information about the Digitalmars-d
mailing list