Templates args

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jul 14 12:51:16 PDT 2016


On 7/14/16 3:28 PM, Andrey wrote:
> On Thursday, 14 July 2016 at 19:27:14 UTC, Andrey wrote:

>> struct Neurons_layer(T = float, size_t neurons_num = 0, F = Sigmoid!T)
>>   if(isFloatingPoint!T && is(typeof(F.Function)))
>>     {
>>     private:
>>       static if(neurons_num > 0)
>>     T[neurons_num] _neurons_arr;
>>       else
>>     T[] _neurons_arr;
>>
>>     private:
>>       alias Function = F.Function;
>> }
>>
>> unittest
>> {
>>   Neurons_layer!(float,5,Sigmoid!float) nf;
>> }
>>
>>
>> The question is - How to make in pretty way this line:
>>  Neurons_layer!(float,5,Sigmoid!float) nf;
>
> to something like - Neurons_layer!(float,5,Sigmoid) nf;

You can't pass an uninstantiated template type as a type, but you can 
pass as an alias:

struct Neurons_layer(T = float, size_t neurons_num = 0, alias FTemp = 
Sigmoid)
{
    alias F = FTemp!T;
    ...

-Steve


More information about the Digitalmars-d-learn mailing list