Public Types | |
typedef AccessorTypes< rank, dim, constness >::reference | reference |
typedef AccessorTypes< rank, dim, constness >::tensor_type | tensor_type |
Public Member Functions | |
reference | operator[] (const unsigned int) |
Private Member Functions | |
Accessor (tensor_type &tensor, const TableIndices< rank > &previous_indices) | |
Accessor () | |
Accessor (const Accessor &a) | |
Private Attributes | |
tensor_type & | tensor |
const TableIndices< rank > | previous_indices |
Friends | |
class | SymmetricTensor |
class | SymmetricTensorAccessors::Accessor |
class | ::::SymmetricTensor< rank, dim > |
class | SymmetricTensorAccessors::Accessor< rank, dim, constness, 2 > |
typedef AccessorTypes<rank,dim,constness>::reference internal::SymmetricTensorAccessors::Accessor< rank, dim, constness, 1 >::reference |
Import two typedefs from the switch class above.
typedef AccessorTypes<rank,dim,constness>::tensor_type internal::SymmetricTensorAccessors::Accessor< rank, dim, constness, 1 >::tensor_type |
internal::SymmetricTensorAccessors::Accessor< rank, dim, constness, 1 >::Accessor | ( | tensor_type & | tensor, | |
const TableIndices< rank > & | previous_indices | |||
) | [private] |
Constructor. Take a reference to the tensor object which we will access.
The second argument denotes the values of previous indices into the tensor. For example, for a rank-4 tensor, if P=2, then we will already have had two successive element selections (e.g. through tensor[1][2]
), and the two index values have to be stored somewhere. This class therefore only makes use of the first rank-P elements of this array, but passes it on to the next level with P-1 which fills the next entry, and so on.
For this particular specialization, i.e. for P==1, all but the last index are already filled.
The constructor is made private in order to prevent you having such objects around. The only way to create such objects is via the Table
class, which only generates them as temporary objects. This guarantees that the accessor objects go out of scope earlier than the mother object, avoid problems with data consistency.
internal::SymmetricTensorAccessors::Accessor< rank, dim, constness, 1 >::Accessor | ( | ) | [private] |
Default constructor. Not needed, and invisible, so private.
internal::SymmetricTensorAccessors::Accessor< rank, dim, constness, 1 >::Accessor | ( | const Accessor< rank, dim, constness, 1 > & | a | ) | [private] |
Copy constructor. Not needed, and invisible, so private.
reference internal::SymmetricTensorAccessors::Accessor< rank, dim, constness, 1 >::operator[] | ( | const unsigned | int | ) |
Index operator.
friend class SymmetricTensor [friend] |
friend class SymmetricTensorAccessors::Accessor [friend] |
friend class ::::SymmetricTensor< rank, dim > [friend] |
friend class SymmetricTensorAccessors::Accessor< rank, dim, constness, 2 > [friend] |
tensor_type& internal::SymmetricTensorAccessors::Accessor< rank, dim, constness, 1 >::tensor [private] |
Store the data given to the constructor.
const TableIndices<rank> internal::SymmetricTensorAccessors::Accessor< rank, dim, constness, 1 >::previous_indices [private] |