Differences between revisions 20 and 23 (spanning 3 versions)
Revision 20 as of 2002-11-26 18:07:16
Size: 2658
Editor: MikeRovner
Comment: BuildingExtensions added
Revision 23 as of 2002-12-13 19:01:03
Size: 2418
Editor: MikeRovner
Comment: fixed links
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
 * ["boost.python/FAQ"]
 * boost.python/HowTo
 * boost.python/BuildingExtensions
 * ["boost.python/module"] level: def,scope
 * ["boost.python/class"]
 * ["boost.python/extract"]
 * ["boost.python/object"]
 * ["boost.python/list"]
 * ["boost.python/iterator"]
 * ["/FAQ"]
 * /HowTo
 * /BuildingExtensions
 * ["/module"] level: def,scope
 * ["/class"]
 * ["/extract"]
 * ["/object"]
 * ["/list"]
 * ["/iterator"]
Line 22: Line 22:
 1. boost.python/SimpleExample
 1. boost.python/ExportingClasses
 1. boost.python/OverridableVirtualFunctions
 1. boost.python/FunctionOverloading
 1. ["boost.python/Inheritance"]
 1. boost.python/SpecialMethod
 1. boost.python
/PeekUnderTheHood
 1. boost.python/CrossExtensionModuleDependencies
 1. boost.python/WrappingEnums
 1. boost.python/PointersAndSmartPointers
 1. boost.python/InternalDataStructures
 1. /SimpleExample
 1. /ExportingClasses
 1. /OverridableVirtualFunctions
 1. /FunctionOverloading
 1. ["/Inheritance"]
 1. /SpecialMethod
 1.
/PeekUnderTheHood
 1. /CrossExtensionModuleDependencies
 1. /WrappingEnums
 1. /PointersAndSmartPointers
 1. /InternalDataStructures

The Boost.Python Library binds C++ and Python in a mostly-seamless fashion. It is just one member of the boost C++ library collection at http://www.boost.org.

Use the Boost Python Library to quickly and easily export C++ to Python such that the Python interface is very similar to the C++ interface. It is designed to be minimally intrusive on your C++ design. In most cases, you should not have to alter your C++ classes in any way in order to use them with Boost.Python. The system should simply reflect your C++ classes and functions into Python. Boost.Python bindings are written in pure C++, using no tools other than your editor and your C++ compiler.

The Python [http://www.python.org/sigs/c++-sig/ C++-sig] serves as a mailing list for users of the library. Documentation for the current release is available at http://www.boost.org/libs/python/. Development documentation, which is usually more up-to-date, is available through the [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/boost/boost/libs/python/doc/index.html Boost CVSWeb] interface.

This page serves as a forum to gather peoples' experience and as a cookbook, as it is more dynamic by nature and open to contributors.

Various items:

  • ["/FAQ"]
  • /HowTo

  • /BuildingExtensions

  • ["/module"] level: def,scope
  • ["/class"]
  • ["/extract"]
  • ["/object"]
  • ["/list"]
  • ["/iterator"]

Tutorial:

  1. /SimpleExample

  2. /ExportingClasses

  3. /OverridableVirtualFunctions

  4. /FunctionOverloading

  5. ["/Inheritance"]
  6. /SpecialMethod

  7. /PeekUnderTheHood

  8. /CrossExtensionModuleDependencies

  9. /WrappingEnums

  10. /PointersAndSmartPointers

  11. /InternalDataStructures


From David Abrahams:

Boost.Python is designed with the idea in mind that users never touch a PyObject*.

Boost.Python depends on quite a few of the other boost libraries (possibly a few others):

  • type_traits
  • bind
  • function
  • mpl
  • smart_ptr

IIUC, ["weave"] can be used for embedding nontrivial C++ code, if you're willing to stick it all inside one function body. Furthermore, tools like weave.blitz() can make an enormous difference by compiling an entire C++ expression template corresponding to an arbitrarily complicated Python expression. Surely that's nontrivial. It's definitely cool. I think weave offers enormous power to the person who's programming mostly in Python.

boost.python (last edited 2008-11-15 14:00:11 by localhost)

Unable to edit the page? See the FrontPage for instructions.