]> Dogcows Code - chaz/yoink/blobdiff - src/cml/vector/external.h
testing new non-autotools build system
[chaz/yoink] / src / cml / vector / external.h
index bc9bc3fe9d29cda003b989736fae7af0fc4e836d..6f0f2153ec9ea94618201bcf954ed110f1319918 100644 (file)
@@ -42,11 +42,15 @@ class vector< Element, external<Size> >
     /* 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.
@@ -74,6 +78,12 @@ class vector< Element, external<Size> >
     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. */
@@ -179,7 +189,8 @@ class vector< Element, external<> >
     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.
      */
This page took 0.019358 seconds and 4 git commands to generate.