static const unsigned int rank = rank_;
/**
- * Declare an array type which can
- * be used to initialize statically
- * an object of this type.
+ * Type of stored objects. This
+ * is a tensor of lower rank.
+ */
+ typedef typename Tensor<rank_-1,dim> value_type;
+
+ /**
+ * Declare an array type which
+ * can be used to initialize an
+ * object of this type
+ * statically.
*/
typedef typename Tensor<rank_-1,dim>::array_type array_type[dim];
template <int rank_, int dim>
inline
-Tensor<rank_-1,dim> &
+typename Tensor<rank_,dim>::value_type&
Tensor<rank_,dim>::operator[] (const unsigned int i)
{
Assert (i<dim, ExcIndexRange(i, 0, dim));
template <int rank_, int dim>
inline
-const Tensor<rank_-1,dim> &
+const typename Tensor<rank_,dim>::value_type&
Tensor<rank_,dim>::operator[] (const unsigned int i) const
{
Assert (i<dim, ExcIndexRange(i, 0, dim));
*/
static const unsigned int rank = 1;
+ /**
+ * Type of stored objects. This
+ * is a double for a rank 1 tensor.
+ */
+
+ typedef double value_type;
+
+//TODO:[WB] Do we need this overflow? Maybe there is use for a zero-size Tensor?
/**
* Declare an array type which can
* be used to initialize statically
* to zero if @p{initialize==true}; this
* is the default behaviour.
*/
- explicit Tensor (const bool initialize = true);
+#ifndef SUNFORTE
+ explicit
+#endif
+ Tensor (const bool initialize = true);
/**
* Copy constructor, where the data is