I find a definition in

template <int rank_, int dim, typename Number>
class Tensor
{
...
typedef typename Tensor<rank_-1,dim,Number>::array_type array_type[dim];
...

}

I do not understand this definition. The array_type only appears once
here without any other definition in this template. How is it used to
define array_type[dim]?
Anyone can tell me how does this definition work?

It's recursive: Tensor<3,dim>::array_type references Tensor<2,dim>::array_type which references Tensor<1,dim>::array_type. But the latter class is explicitly specialized and essentially has this:
      typedef Number array_type[dim];

W.

------------------------------------------------------------------------
Wolfgang Bangerth               email:            [email protected]
                                www: http://www.math.tamu.edu/~bangerth/

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to