/* Shorthand for the type of this vector: */
typedef vector<Element,generator_type> vector_type;
+ /* The vector coordinate type: */
+ typedef Element coordinate_type;
+
/* For integration into the expression template code: */
typedef vector_type expr_type;
/* For integration into the expression template code: */
- typedef vector< Element,fixed<Size> > temporary_type;
+ typedef vector<typename cml::remove_const<Element>::type,
+ fixed<Size> > temporary_type;
typedef typename temporary_type::subvector_type subvector_type;
/* Note: this ensures that an external vector is copied into the proper
* temporary; external<> temporaries are not allowed.
typedef cml::et::assignable_tag assignable_tag;
+ public:
+
+ /** Static constant containing the vector's space dimension. */
+ enum { dimension = Size };
+
+
public:
/** Return square of the length. */
typedef vector_type expr_type;
/* For integration into the expression template code: */
- typedef vector< Element, dynamic<> > temporary_type;
+ typedef vector<typename cml::remove_const<Element>::type,
+ dynamic<> > temporary_type;
/* Note: this ensures that an external vector is copied into the proper
* temporary; external<> temporaries are not allowed.
*/