2010/2/10 Robert Bradshaw <[email protected]>: > Before we release any of the C++ stuff into the wild, we need to nail > down how to declare namespaces. There are two contenders: > > cdef extern from "foo.h" namespace Foo.Bar: > int f(int) > > cdef extern from "foo.h" namespace "Foo::Bar": > int f(int) > > Now one thing I've realized since starting to look at this is > namespaces can be more than just dotted Python identifiers, e.g. one > has "std::vector<T>::iterator." Ideally, this will be handled more > cleanly once we have cpp class nesting, but there's no way to declare > it now (without resorting to the strings hacking that one does for C++ > currently). I'm leaning towards the latter. > > Also, I've been thinking about namespace conflicts. Suppose one has > A::B::x and Y::Z::x, then we don't provide a way to use both (short of > resting to string cnames). We could allow > > cdef extern from "..." namespace A.B as X: > int x(int) > > or > > cdef extern from "..." namespace "A::B" as X: > int x(int) > > print X.x(5) > > Would the former with no as clause automatically inject A.B (I'd > rather not)? This is a non-issue if we go with the latter syntax.
+1 for allowing 'as' and +1 for allowing the automatically injection of the namespace. It's like "using namespace ..." in C++. The user should choose how to use it. -- - Danilo Freitas _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
