Hi,

I'm currently experimenting with Cython's support for nested C++ classes and might havce encountered a bug.

I have attempted to strip down the example from the documentation to its bare minimum. This here works fine:

---8<---
cdef extern from "foo":
    cdef cppclass outer[T]:
        cppclass inner:
           pass

cdef outer[int].inner foo
---8<---

Next, I remove the template parameter as well. After all, not every outer class containing an inner class is a template class.

---8<---
cdef extern from "foo":
    cdef cppclass outer:
        cppclass inner:
           pass

cdef outer.inner foo
---8<---

Now, I get this error message:
   'outer' is not a cimported module

It seems that without the square brackets, Cython no longer recognizes 'outer' as a class name and thinks it must be a module because it is followed by a dot. I suppose this is not what should happen, right?

Best regards
  Simon
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to