###

# Boost.Python

## News/Change Log

19 November 2004 - 1.32 release
  - Updated to use the Boost Software License.
  - A new, better method of wrapping classes with virtual functions has been implemented.
  - Support for upcoming GCC symbol export control features have been folded in, thanks to Niall Douglas.
  - Improved support for `std::auto_ptr`-like types.
  - The Visual C++ bug that makes top-level cv-qualification of function parameter types part of the function type has been worked around.
  - Components used by other libraries have been moved out of `python/detail` and into `boost/detail` to improve dependency relationships.
  - Miscellaneous bug fixes and compiler workarounds.
8 Sept 2004
  Support for Python's Bool type, thanks to Daniel Holth.
11 Sept 2003
  - Changed the response to multiple to-python converters being registered for the same type from a hard error into warning; Boost.Python now reports the offending type in the message.
  - Added builtin `std::wstring` conversions
  - Added `std::out_of_range` => Python `IndexError` exception conversion, thanks to Raoul Gough
9 Sept 2003
  Added new `str`
constructors which take a range of characters, allowing strings containing nul (`'\0'`) characters.
8 Sept 2003
  Added the ability to create methods from function objects (with an `operator()`); see the make_function docs for more info.
10 August 2003
  Added the new `properties` unit tests contributed by Roman Yakovenko and documented `add_static_property` at his urging.
1 August 2003
  Added the new `arg` class contributed by Nikolay Mladenov which supplies the ability to wrap functions that can be called with ommitted arguments in the middle:

      void f(int x = 0, double y = 3.14, std::string z = std::string("foo"));

      BOOST_PYTHON_MODULE(test)
      {
         def("f", f
             , (arg("x", 0), arg("y", 3.14), arg("z", "foo")));
      }

  And in Python:

      >>> import test
      >>> f(0, z = "bar")
      >>> f(z = "bar", y = 0.0)

  Thanks, Nikolay!
22 July 2003
  Killed the dreaded "bad argument type for builtin operation" error. Argument errors now show the actual and expected argument types!
19 July 2003
  Added the new `return_arg` policy from Nikolay Mladenov. Thanks, Nikolay!
18 March, 2003
  Gottfried Ganßauge has contributed opaque pointer support.
  Bruno da Silva de Oliveira has contributed the exciting Pyste ("Pie-steh") package.
24 February 2003
  Finished improved support for `boost::shared_ptr`. Now any wrapped object of C++ class `X` can be converted automatically to `shared_ptr<X>`, regardless of how it was wrapped. The `shared_ptr` will manage the lifetime of the Python object which supplied the `X`, rather than just the `X` object itself, and when such a `shared_ptr` is converted back to Python, the original Python object will be returned.
19 January 2003
  Integrated `staticmethod` support from Nikolay Mladenov. Thanks, Nikolay!
29 December 2002
  Added Visual Studio project file and instructions from Brett Calcott. Thanks, Brett!
20 December 2002
  Added automatic downcasting for pointers, references, and smart pointers to polymorphic class types upon conversion to python
18 December 2002
  Optimized from_python conversions for wrapped classes by putting the conversion logic in the shared library instead of registering separate converters for each class in each extension module
19 November 2002
  Removed the need for users to cast base class member function pointers when used as arguments to add_property
13 December 2002
  Allow exporting of `enum_` values into enclosing `scope`.
  Fixed unsigned integer conversions to deal correctly with numbers that are out-of-range of `signed long`.
14 November 2002
  Auto-detection of class data members wrapped with `make_getter`
13 November 2002
  Full Support for `std::auto_ptr<>` added.
October 2002
  Ongoing updates and improvements to tutorial documentation
10 October 2002
  Boost.Python V2 is released!

Revised 19 November 2004

© Copyright Dave Abrahams 2002-2003.