ADL

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Sun Sep 4 05:31:01 PDT 2016


On 9/4/16 3:26 AM, Walter Bright wrote:
> On 9/3/2016 4:46 PM, Andrei Alexandrescu wrote:
>> On 9/4/16 12:28 AM, Walter Bright wrote:
>>> On 9/3/2016 1:43 PM, Andrei Alexandrescu wrote:
>>>> On 9/3/16 10:43 PM, Walter Bright wrote:
>>>>> On 9/3/2016 8:34 AM, Manu via Digitalmars-d wrote:
>>>>>> And if either module doesn't have an instance of func?
>>>>>
>>>>> static if (traits(compiles, ModuleOf!T.func))
>>>>>     alias func = ModuleOf!T.func;
>>>>
>>>> What's an elegant way to encapsulate this as a stutter-free one-liner?
>>>> -- Andrei
>>>
>>> using a template and mixing it in
>>
>> "Show me the mo^H^Hcode."
>
> template foo(T)
> {
>     static if (traits(compiles, ModuleOf!T.func))
>         foo = "alias func = " ~ ModuleOf!T.func ~ ";";
>     else
>     foo = "";
> }
>
> mixin(foo!T);

Actually "func" i.e. the function's name must be a paraneter. No? -- Andrei


More information about the Digitalmars-d mailing list