Fix template types as class members.
authorRobert Bradshaw <robertwb@gmail.com>
Sun, 12 Aug 2012 05:55:30 +0000 (22:55 -0700)
committerRobert Bradshaw <robertwb@gmail.com>
Sun, 12 Aug 2012 05:55:45 +0000 (22:55 -0700)
Cython/Compiler/ModuleNode.py
tests/run/cpp_stl.pyx

index ba19d2f..99aad7c 100644 (file)
@@ -1036,7 +1036,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
 
         for entry in cpp_class_attrs:
             code.putln("new((void*)&(p->%s)) %s();" % 
-                       (entry.cname, entry.type.cname));
+                       (entry.cname, entry.type.declaration_code("")));
 
         for entry in py_attrs:
             if scope.is_internal or entry.name == "__weakref__":
index f3bf5b5..41db50d 100644 (file)
@@ -52,3 +52,14 @@ def test_vector_iterator(L):
         print deref(iter)
         inc(iter)
     del v
+
+cdef class VectorWrapper:
+    """
+    >>> VectorWrapper(1, .5, .25, .125)
+    [1.0, 0.5, 0.25, 0.125]
+    """
+    cdef vector[double] vector
+    def __init__(self, *args):
+        self.vector = args
+    def __repr__(self):
+        return repr(self.vector)