From ef5f5f854a9732c7c0bcf38e824638971f910085 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Sun, 15 Oct 2000 04:24:47 +0000 Subject: [PATCH] no message [SVN r7947] --- todo.txt | 81 ++++++++++++++++++++++++++++++++++++++++++-- vc6_prj/vc6_prj.opt | Bin 64000 -> 0 bytes 2 files changed, 78 insertions(+), 3 deletions(-) delete mode 100644 vc6_prj/vc6_prj.opt diff --git a/todo.txt b/todo.txt index d8250858..bc0bd7fa 100644 --- a/todo.txt +++ b/todo.txt @@ -5,23 +5,98 @@ Document error-handling Consider renaming PyPtr to Reference. Report Cygwin linker memory issues handle more arguments +MI from both ExtensionClasses and Python classes, or at least don't crash(!) Remove one level of indirection on type objects (no vtbl?). Much more testing, especially of things in objects.h -Make multiple inheritance from real Python classes work. +Make multiple inheritance from real Python classes work - I don't think this is possible Handle polymorphism (passing a Wrapped as a Base*). Specializations of Caller<> for commmon combinations of argument types (?) +special member functions for numeric types +pickling support +testing with Python 2.0 Documentation: + Contributors + + Comparison with other systems: + CXX + SWIG + Zope ExtensionClasses + ? + + Supported Python versions + + building + + Private virtual functions with default implementations + + overloading and the overload resolution mechanism + special member functions + + exposing data members as attributes + adding conversions for fundamental types generic conversions for template types (with partial spec). - extending multiple-argument support. + + extending multiple-argument support using gen_all.py + differences between Python classes and ExtensionClasses additional capabilities of ExtensionClasses + exception handling - building + dealing with non-const reference/pointer parameters + limitations + templates + Yes. If you look at the examples in extclass_demo.cpp you'll see that I have + exposed several template instantiations (e.g. std::pair) in Python. + Keep in mind, however, that you can only expose a template instantiation, + not a template. In other words, MyTemplate can be exposed. MyTemplate + itself cannot. + + Well, that's not strictly true. Wow, this is more complicated to explain + than I thought. + You can't make an ExtensionClass, since after all MyTemplate is + not a type. You can only expose a concrete type to Python. + + What you *can* do (if your compiler supports partial ordering of function + templates - MSVC is broken and does not) is to write appropriate + from_python() and to_python() functions for converting a whole class of + template instantiations to/from Python. That won't let you create an + instance of MyTemplate from Python, but it will let you + pass/return arbitrary MyTemplate instances to/from your + wrapped C++ functions. + + template + MyTemplate from_python(PyObject* x, py::Type >) + { + // code to convert x into a MyTemplate... that part is up to you + } + + template + PyObject* from_python(const MyTemplate&) + { + // code to convert MyTemplate into a PyObject*... that part is up to + you + } + + For example, you could use this to convert Python lists to/from + std::vector automatically. + + enums + + the importance of declaration order of ClassWrappers/ExtensionInstances + + out parameters and non-const pointers + + returning references to wrapped objects + + About the vc6 project and the debug build + + About doctest.py + Boost remarks: > > One of us is completely nuts ;->. How can I move the test diff --git a/vc6_prj/vc6_prj.opt b/vc6_prj/vc6_prj.opt deleted file mode 100644 index fa7645c378df09f9fb320b53392817a8a635c4c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64000 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