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

Reply via email to